我在我的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); }
sqlite3_finalize(result)
关闭数据库之前我应该吗?
不.您不需要,因为sqlite3_finalize()
调用函数来删除使用或相关函数创建的预准备语句sqlite3_prepare_v2()
.