sqlite3 准备、绑定和重置语句

发布于 2024-09-25 13:29:05 字数 461 浏览 2 评论 0原文

有人可以更详细地介绍这些功能吗:

sqlite3_reset();
sqlite3_clear_bindings()  

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

我可以使用 sqlite3_clear_bindings() 为这些绑定参数分配 NULL 值。 从 文档 可以看出 sqlite3_reset() 不会破坏绑定,其值为保留并将对象置于初始状态。它到底意味着什么? 特别是关于不破坏绑定的部分。

Can someone put more light on the functions:

sqlite3_reset();
sqlite3_clear_bindings()  

I understand that I can use sqlite3_prepare() to translate sql string to native byte code which engine understands. Therefor the engine does not have to translate it every time when it is used. I can also parametrize such prepared statement and later bind values to it with sqlite3_bind*() functions.

I can assign NULL value to these binded params with sqlite3_clear_bindings().
From documentation one can read that sqlite3_reset(), does not destroy bindings, the values are preserved and the object is put into initial state. What does it actually mean?
Especially the part about not destroying bindings.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一江春梦 2024-10-02 13:29:05

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

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

sqlite3_reset clears the state that the prepared statement maintained during execution. This sets it back to the initial state, thus "resetting it". Bindings remain intact. The statement can be re-executed. Without resetting it, you will receive an error when you try to execute it.

sqlite3_clear_bindings will just clear the bindings, but not change the state on the prepared statement. You can't re-execute a prepared statement if you just cleared the bindings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文