sqlite3准备,绑定和重置语句

时间:2010-09-29 13:38:52

标签: sql database sqlite prepared-statement

有人可以更多地了解这些功能:

sqlite3_reset();
sqlite3_clear_bindings()  

我知道我可以使用 sqlite3_prepare()将sql字符串转换为引擎理解的本机字节代码。因此,每次使用时引擎都不必翻译它。我还可以参数化这样的预处理语句,然后使用 sqlite3_bind *()函数将值绑定到它。

我可以使用sqlite3_clear_bindings()为这些绑定参数指定NULL值。 从documentation开始,可以读取sqlite3_reset(),不破坏绑定,保留值并将对象置于初始状态。它究竟意味着什么? 特别是关于不破坏绑定的部分。

1 个答案:

答案 0 :(得分:3)

sqlite3_reset清除执行期间保留的预准备语句的状态。这将其设置回初始状态,从而“重置”。绑定保持完整。该声明可以重新执行。如果不重置它,当您尝试执行它时会收到错误。

sqlite3_clear_bindings将清除绑定,但不会更改预准备语句中的状态。如果刚刚清除了绑定,则无法重新执行预准备语句。