Попытка вернуть, существует ли запись в SQLite на iPhone, за исключением того, что я продолжаю получать «неизвестную ошибку».
selectStmt static sqlite3_stmt *selectStmt = nil;
используется здесь if(selectStmt) sqlite3_finalize(selectStmt);
, который выполняется только в случае завершения приложения. Эта функция прекрасно работает с операторами delete и insert, поэтому я предполагаю, что что-то не так с логикой ниже?
- (BOOL) doesBookExist {
if(selectStmt == nil) {
const char *sql = "select count(*) from books where isbn = ?";
if(sqlite3_prepare_v2(database, sql, -1, &selectStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating select statement. '%s'", sqlite3_errmsg(database));
}
//When binding parameters, index starts from 1 and not zero.
int count = sqlite3_bind_text(selectStmt, 1, [isbn UTF8String], -1, SQLITE_TRANSIENT);
if (SQLITE_DONE != sqlite3_step(selectStmt))
NSAssert1(0, @"Error while selecting. '%s'", sqlite3_errmsg(database));
sqlite3_reset(selectStmt);
return (count > 0);
}