我正在使用此方法更新数据库中的行:
- (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行的错误。
答案 0 :(得分:0)
好的,我发现了问题。 我正在另一个线程中读取同一个数据库的另一个表,并以某种方式阻止此更新方法。 我确信我已经从我的代码中删除了我的数据库上的所有后台操作,但这个操作从我的检查中删除了。
顺便说一下,我仍然在STEP行上出错,但它仍在工作。