这是一个简单的问题 .
我有一个使用古老代码的应用程序(我不是启动应用程序的人:D)
无论如何,它使用SQLite3 ....是啊....
所以我的SQlite3有点生疏但是当我们有多个查询时:
const char *query1 = "SELECT ... ";
if (sqlite3_prepare_v2(_database, query1, -1, &statement, nil) == SQLITE_OK)
{
...
}
const char *query2 = "UPDATE ... ";
if (sqlite3_prepare_v2(_database, query2, -1, &statement, nil) == SQLITE_OK)
{
...
}
我需要使用:
sqlite3_reset(statement);
在我打电话之前;
if (sqlite3_prepare_v2(_database, query2, -1, &statement, nil) == SQLITE_OK)
在上面的例子中,或者每次调用prepare语句时SQLite3是否自动调用 sqlite3_reset()
函数?
2 回答
当您调用
sqlite3_prepare_v2()
时,必须调用sqlite3_finalize()
以释放为该语句分配的资源 . 这必须在重用statement
变量之前完成,或者在不再需要该语句时完成 .仅当您想要再次执行相同的预准备语句时才需要
sqlite3_reset()
.是的,如果你想使用
sqlite3_prepare_v2
语句,那么sqlite3_reset(statement)
语句是强制性的,否则有可能抛出异常 .Here,您可以更加了解
sqlite3_reset(statement)
的重要性 .享受编码!!