我看到我的读取因为处于WAL模式的数据库的写入而被阻止 - 我很难过为什么。
我的设置:
sqlite3_open_v2
的非共享连接。SQLITE_OPEN_READWRITE
模式SQLITE_OPEN_READONLY
模式打开数据库在WAL模式下,我认为应该可以在发生写入时同时使用读者。
然而,当我使用sqlite3_prepare_v2
我可能做错什么导致读者被阻止?我误解了“读”实际上是什么吗?
任何提示赞赏,
谢谢:)
答案 0 :(得分:0)
检查每个sqlite3_step后是否有sqlite3_reset,因为这是导致数据库被锁定错误的一种情况。 在使用sqlite3_prepare准备语句并使用sqlite3_step执行它之后,您需要始终使用sqlite3_reset重置它。
sqlite3_reset(S)接口将准备好的语句S重置为 它的计划的开始。
希望这能解决你的问题... !!!