我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。
我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经尝试过了:
connection = sqlite3.connect(dbFile.db)
connection.commit()
connection.close()
,然后尝试重新打开连接,但锁定的数据库仍然存在。无论如何,有没有在崩溃前关闭数据库?还是在应用程序中解锁数据库的方法?现在,我唯一的解决方案是删除数据库并重新开始(长期来看这实际上不会起作用)。
谢谢!
答案 0 :(得分:0)
如果您的应用程序被强制关闭,难道您不想提交当前事务,而是回滚以确保没有中断吗?
在捕获到关闭信号后,请尝试以下操作:
connection.rollback()
connection.close()