我收到此错误“QSqlError("5", "Unable to fetch row", "database is locked")
”
我已经完成了我的研究,我认为问题产生于我在INSERT
查询仍处于活动状态时执行SELECT
查询这一事实,这会锁定数据库。现在我想象人们经常遇到这个问题,因为基于SELECT
查询的输出写入数据库很常见,所以我想问一下解决这个问题的最佳方法是什么?在使用query.next()
关闭查询以解锁数据库后,我是否能够获取查询(使用query.finish()
)?或者我应该将结果存储在临时容器中,关闭查询然后遍历临时容器?
非常感谢您提前
答案 0 :(得分:1)
运行时是否有数据库阅读器?我有一个类似的问题,只有在DB Browser for SQLite
运行时才会发生。确保您没有任何其他软件打开您的数据库文件。使用DB Browser for SQLite
时我不会遇到这个问题,但是当我这样做时,关闭程序会修复它。
另外,我倾向于在每个查询完成后运行query.finish()
,以确保没有互动。
我希望这会帮助你!