sqlite3异常数据库被锁定
如果我在一个函数中打开数据库并在同一函数中关闭,然后再次使用相同的数据库对象但在另一个函数(同一类)中打开它 - 这会导致“数据库被锁定”异常吗?
我应该提到我正在处理数据库的两个不同的表。当我尝试在表中进行 UPDATE
或 INSERT
操作时,会收到错误消息,而在 SELECT
查询中则不会收到错误消息。
If I open database in one function and close in the same function, then again open it with same database object but in another function (of same class) - will that cause a 'database is locked' exception?
I should mention that I'm dealing with two different tables of the database. I get the error when I try to UPDATE
or INSERT
in the table, and never for SELECT
queries.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我找到了解决方案。我没有最终确定
sqlite3_stmt
,这就是发生这种情况的原因。因此,每当您使用任何'sqlite3_stmt *statement;'
时,请确保通过调用'sqlite3_finalize(statement)';
正确完成它://www.sqlite.org/cvstrac/wiki?p=DatabaseIsLocked" rel="nofollow">此链接有更好的描述。
I've found the solution. I wasn't finalizing the
sqlite3_stmt
, that's why this was happening. So, whenver you use any'sqlite3_stmt *statement;'
, make sure you properly finalize it by calling'sqlite3_finalize(statement)';
Check out this link a better description.