首页 文章

iOS SQLite3多个准备语句

提问于
浏览
-1

这是一个简单的问题 .

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

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

    仅当您想要再次执行相同的预准备语句时才需要 sqlite3_reset() .

  • -1

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

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

    享受编码!!

相关问题