Essayer de savoir si un enregistrement existe dans SQLite sur l'iPhone, sauf que je reçois toujours une 'erreur inconnue'.'erreur inconnue' dans SQLite sur l'iPhone lors de la sélection du nombre total d'enregistrements
selectStmt est static sqlite3_stmt *selectStmt = nil;
utilisé ici if(selectStmt) sqlite3_finalize(selectStmt);
qui est seulement exécuté si l'application se termine. Cette fonctionnalité fonctionne bien avec les instructions de suppression et d'insertion d'instructions, donc je suppose que c'est quelque chose de mal avec la logique ci-dessous?
- (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);
}
Cela prend tout son sens et fonctionne exactement comme je le voulais. Je vous remercie. – fuzz
qu'est-ce que 'isbn'? – Sridhar
@Sridhar, http://en.wikipedia.org/wiki/ISBN. Mais c'est aussi un nom de colonne et une variable dans ce code. –