微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlite3_reset作用

刚开始使用sqlite的时候,在一句sqlite执行完之后,习惯性的认为应该执行sqlite3_reset()函数,认为将其重置就能重复使用sqlite3_stmt,其实这是错误的,sqlite3_reset()操作的作用是:
1.如果之前没有执行sqlite3_step()或者执行了sqlite3_step(),并且sqlite3_step()返回了sqlITE_DONE、sqlITE_OK、sqlITE_ROW中的一个,那么sqlite3_reset()会将参数sqlite3_stmt返回到函数sqlite3_prepare_v2()运行之后的状态,也就是将sql命令解析好了的状态(sqlite3_prepare_v2()是用来进行解析sqlite3_stmt一个sql结构体的操作),但是不会对绑定状态进行改变,在这里感觉这个函数一般情况下不会起作用,除非后面把sqlite3_prepare_v2()中的sql命令修改了,但是这种情况好像发生的概率不是很大,以前的版本中,如果查询多条数据,sqlite3_reset()会在sqlite3_step()之后调用,现在已经不需要了,运行结束,sqlite3_reset()返回sqlite_OK。
2.如果之前执行了sqlite3_step(),并且发生了错误,那么跟上一条一样,只是结果会返回一个具体的错误码。
因此,在执行完具体的函数之后,如果后面还要继续使用,需要将其释放,执行sqlite3_finalize()

原文地址:https://www.jb51.cc/sqlite/198437.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐