我正在使用这种方法来更新我的数据库中的一行:
- (void)Update: (int)idMed {
fileMgr = [NSFileManager defaultManager];
sqlite3_stmt *stmt=nil;
sqlite3 *dbase;
NSString *database = [self.GetDocumentDirectory stringByAppendingPathComponent:@"rtDb.sqlite"];
sqlite3_open([database UTF8String], &dbase);
const char *sql = "UPDATE orari SET pr=1 WHERE dataid=?";
sqlite3_prepare_v2(dbase, sql, -1, &stmt, NULL);
sqlite3_bind_int(stmt, 1, idMed);
sqlite3_step(stmt);
sqlite3_finalize(stmt);
sqlite3_close(dbase);
}
我已经三重检查了发送到这个方法的数据,idMed 是正确的,如果我在我的 SQLite 管理器中使用查询,它就可以工作。实际上这种方法也有效,但只是几次。大多数时候它什么都不做。
在另一种方法中使用了相同的确切代码,该方法生成了一个 SELECT,然后是这个相同的 UPDATE 并且它在那里工作,这里不是。
更新:似乎我收到了 STEP 和 FINALIZE 行的错误。