iOS SQLite3多个准备语句

时间:2015-04-28 09:50:48

标签: ios sqlite

只是一个简单的问题。

我有一个使用过时代码的应用程序(我不是启动应用程序的人: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 个答案:

答案 0 :(得分:-1)

是的,如果你想使用sqlite3_prepare_v2语句,那么sqlite3_reset(statement)语句是强制性的,否则有可能抛出异常。

Here,您可以更加了解sqlite3_reset(statement)的重要性。

享受编码!!

答案 1 :(得分:-1)

当您调用sqlite3_prepare_v2()时,必须调用sqlite3_finalize()以释放为该语句分配的资源。 这必须在重用statement变量之前完成,或者在不再需要该语句时完成。

只有当您想要再次执行相同的预处理语句时才需要

sqlite3_reset()