在使用sqlite3_exec执行查询后,我应该使用sqlite3_finalize吗?

Leg*_*10n 3 sqlite iphone objective-c

我在我的iPhone应用程序中使用Sqlite3,我显然是随机获得一些不需要的回滚,但是我不知道这是否与我没有最终确定语句的事实有关sqlite3_finalize,因为到目前为止据我所知sqlite3_exec,照顾它.

另外我发现了一些sqlite3_prepare_v2我没有最终确定的SELECT ,所以我知道我必须完成这些,但是我应该对它们做同样的事情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);
}
Run Code Online (Sandbox Code Playgroud)

sqlite3_finalize(result)关闭数据库之前我应该吗?

pie*_*fou 10

不.您不需要,因为sqlite3_finalize()调用函数来删除使用或相关函数创建的预准备语句sqlite3_prepare_v2().