Je ne suis pas en mesure de faire une mise à jour, mais les insertions et les sélections fonctionnent correctement.Problème de mise à jour avec sqliteManager
Note:
1) J'utilise l'emballage de: https://github.com/misato/SQLiteManager4iOS
2) Le même code fonctionne pour l'instruction INSERT, mais pas pour la mise à jour
//NSString* sqlStr = (@"INSERT INTO sbu (sbuName) VALUES ('rrrr');)"); //WORKS
3) Le code associé à cette mise à jour est le suivant:
mon code en ligne
NSString* sqlStr = (@"UPDATE User SET Name = 'wweerr' WHERE Id = 19"); //using a direct sql to verify if it works - does not
SQLiteManager* dbManager =[[SQLiteManager alloc]initWithDatabaseNamed:@"data.db"];
NSError* error = [dbManager doQuery:sqlStr];
de la bibliothèque:
- (NSError *)doQuery:(NSString *)sql {
NSError *openError = nil;
NSError *errorQuery = nil;
//Check if database is open and ready.
if (db == nil) {
openError = [self openDatabase];
}
if (openError == nil) {
sqlite3_stmt *statement;
const char *query = [sql UTF8String];
sqlite3_prepare_v2(db, query, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_ERROR) {
const char *errorMsg = sqlite3_errmsg(db);
errorQuery = [self createDBErrorWithDescription:[NSString stringWithCString:errorMsg encoding:NSUTF8StringEncoding]
andCode:kDBErrorQuery];
}
//NSLog(@"sql error: %@", error)
NSInteger result = sqlite3_finalize(statement);
errorQuery = [self closeDatabase];
}
else {
errorQuery = openError;
}
Quoi est l'erreur sur la mise à jour et qu'est-ce qui sélectionne ... où Id = 18 donner? – Mark
Salut Mark, la chose étrange ici est qu'aucune erreur est générée :( J'ai également fait un peu-étape de débogage, le flux n'est pas arrêté à tout moment .. Je suis clueless quant à savoir pourquoi cela ne fonctionne pas .. – Khayrattee
Qu'est-ce que 'select * from Utilisateur où Id = 19' donne – Mark