是否可以在写入SQLite数据库时从中读取?
我知道在写入时写入会阻止访问,但读取的写入是否相同?
答案 0 :(得分:1)
这有点令人费解,但请查看File Locking and Concurrency documentation以获取SQLite。听起来好像db处于exclusive
锁定模式,这是唯一不允许读取的时间。除了解锁之外,当数据库甚至没有打开时。
我不是百分百肯定,但这就是我认为的意思。
答案 1 :(得分:1)
经过阅读并查看FMDB代码后,我发现我没有正确使用SQLITE_BUSY和SQLITE_LOCKED返回值。
根据FMDB代码,应循环进行有限数量的重试,等待很短的时间。
所以我在我的代码中实现了这一点,一切似乎都运行良好。
答案 2 :(得分:0)
是的,尽管需要考虑所有相关的多线程问题。我通常通过sqlite3_open_v2()打开同一个DB文件的多个句柄。