Я пытаюсь обновить столбец в таблице с помощью этой функции:
-(void)updateID:(NSString*)ID{
NSString *queryInsertAndUpdate =
[NSString stringWithFormat:
@"UPDATE mytable set ID = '%@' limit 1",ID];
const char* query=[queryInsertAndUpdate UTF8String];
sqlite3_stmt *stmt = nil;
sqlite3_exec(_database, "BEGIN EXCLUSIVE TRANSACTION", 0, 0, 0);
if (sqlite3_prepare_v2(_database, query, -1, &stmt, NULL) == SQLITE_OK) {
if(sqlite3_step(stmt) == SQLITE_DONE) {
NSLog(@"Query Executed");
} else {
NSLog(@"Query NOT Executed: %s", sqlite3_errmsg(_database));
}
sqlite3_finalize(stmt);
}else{
NSLog(@"Statement NOT Prepared: %s", sqlite3_errmsg(_database));
}
}
Когда я запускаю эту функцию, все работает нормально, и столбец обновляется.Я знаю это, потому что я звоню в базу данных о конкретной таблице и проверяю результаты.Дело в том, что когда я вызываю ту же функцию, которая читает записи таблицы из другого класса, я получаю разные результаты.
В частности, когда я вызываю:
AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
[appDelegate initViewController];
внутри initViewController
Я вызываю ту же функцию, которая читает таблицу, и получаю запись в столбце перед обновлением.
Почему это происходит?Я могу предоставить больше кода, если это необходимо.