Я пытался разработать программу входа в систему, которая работала бы с базой данных.Я использовал таблицу emplopyee, со столбцами «Userid», «Passwd» и «Name» (все три типа «VARCHAR»).В моей программе я добавил два текстовых поля: «имя пользователя» и «пароль».Я получил значения «username» и «password» и сохранил их в двух глобальных объектах (типа «NSString»).
Теперь я хотел бы выбрать «Name», которое соответствует указанным «Userid» и «Passwd».».Часть кода, которую я использовал по вышеуказанной причине, находится здесь:
sqlite3 *dB;
sqlite3_stmt *compiledStatement;
if(sqlite3_open([databasePath UTF8String], &dB)==SQLITE_OK){
const char *sql="Select Name from employee Where Userid=? , Passwd=?";
if(sqlite3_prepare_v2(dB, sql, -1, &compiledStatement, NULL)!=SQLITE_OK)
NSAssert1(0,@"Error while reading Employee Name -->%s',sqlite3_errmsg(dB));
}
sqlite3_bind_text(compiledStatement,1,[txt UTF8String],-1,SQLITE_TRANSIENT);
/*txt and txt1 are the global objects i told about they have the values of Userid and Passwd from the texxt fields respectively*/
sqlite3_bind_text(compiledStatement,2,[txt1 UTF8String],-1,SQLITE_TRANSIENT);
if(SQLITE_DONE != sqlite3_step(compiledStatement))
txt3 =[[NSString alloc] initWithUTF8String:(char*)sqlite3_column_text(compiledStatement,0)];
else
NSAssert1(0, @"Error while getting the username '%s'", sqlite3_errmsg(dB));
sqlite3_reset(compiledStatement);
Она не содержит ошибок при компиляции, но приложение не работает, в запросе указывается какая-то ошибка (во время выполнения).если вы не можете разобраться с данными, я предоставлю вам весь код.
Я добавил подробности ошибки здесь:
эта ошибка возникает, если я использую "," (запятая) взапрос на выборку:
*** Завершение работы приложения из-за необработанного исключения
'NSInternalInconsistencyException', причина: 'Ошибка при чтении имени сотрудника ->' рядом ', ": синтаксическая ошибка' '
, и это происходит, когда я использую «И» в запросе выбора:
*** Завершение работы приложения из-за необработанного исключения
«NSInternalInconsistencyException», причина: 'Ошибка при получении имени пользователя' не ошибка ''