SQLite方法让我发疯

时间:2013-10-22 09:24:19

标签: ios sqlite

我正在使用此方法更新数据库中的行:

- (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行的错误。

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。 我正在另一个线程中读取同一个数据库的另一个表,并以某种方式阻止此更新方法。 我确信我已经从我的代码中删除了我的数据库上的所有后台操作,但这个操作从我的检查中删除了。

顺便说一下,我仍然在STEP行上出错,但它仍在工作。