当sqlite3_step失败时,是否需要调用sqlite3_finalize

时间:2018-06-14 09:57:34

标签: sqlite

我有一些案例如下

sqlite3_bind_text(stmt, 12,"test",4,SQLITE_TRANSIENT);
int retv = sqlite3_step(stmt);
if (retv != SQLITE_DONE) {
   throw "Sql Exception"
}

sqlite3_finalize(stmt);

所以我的问题是,是否需要在抛出异常之前调用sqlite3_finalize,我想如果sqlite3_step中的任何错误它会在内部清除stmt

1 个答案:

答案 0 :(得分:2)

documentation说:

  

应用程序必须完成每个准备好的语句才能完成   避免资源泄漏

所以你必须致电sqlite3_finalize