QSqlError(“5”,“无法获取行”,“数据库被锁定”)

时间:2017-04-01 17:48:02

标签: qt sqlite qt5 qtsql

我收到此错误“QSqlError("5", "Unable to fetch row", "database is locked")

我已经完成了我的研究,我认为问题产生于我在INSERT查询仍处于活动状态时执行SELECT查询这一事实,这会锁定数据库。现在我想象人们经常遇到这个问题,因为基于SELECT查询的输出写入数据库很常见,所以我想问一下解决这个问题的最佳方法是什么?在使用query.next()关闭查询以解锁数据库后,我是否能够获取查询(使用query.finish())?或者我应该将结果存储在临时容器中,关闭查询然后遍历临时容器?

非常感谢您提前

1 个答案:

答案 0 :(得分:1)

运行时是否有数据库阅读器?我有一个类似的问题,只有在DB Browser for SQLite运行时才会发生。确保您没有任何其他软件打开您的数据库文件。使用DB Browser for SQLite时我不会遇到这个问题,但是当我这样做时,关闭程序会修复它。

另外,我倾向于在每个查询完成后运行query.finish(),以确保没有互动。

我希望这会帮助你!