我在我的iPhone应用程序中使用了SqLITE3,我显然是在随机的基础上得到一些不需要的回滚,但是我不知道这是否与我没有用“cc>”来结束语句的事实有关,因为据我所知sqlite3_finalize照顾它。
我还发现了一些与《cc>》中的我没有完成的选择,所以我知道我必须完成这些,但是我应该和sqlite3_exec中的那些做同样的事情吗?
我的陈述的一个例子是:

NSString *query=@"UPDATE books SET title='newName' WHERE id='21';";
if ((result=sqlite3_open([database UTF8String], &_database))==SQLITE_OK) {
    result=sqlite3_exec(_database, [query UTF8String],NULL,NULL,&errorMsg);
    if (result!=SQLITE_OK) {
        printf("\n%s",errorMsg);
        sqlite3_free(errorMsg);
    }
    sqlite3_close(_database);
}

我应该在关闭数据库之前sqlite3_prepare_v2吗?

最佳答案

不需要,因为调用sqlite3_finalize()函数是为了删除使用sqlite3_prepare_v2()或相关函数创建的已准备语句。

09-17 21:51