在iPhone上写入时,我可以从SQLite数据库中读取吗?

时间:2009-08-20 10:51:14

标签: iphone sqlite readwritelock

是否可以在写入SQLite数据库时从中读取?

我知道在写入时写入会阻止访问,但读取的写入是否相同?

3 个答案:

答案 0 :(得分:1)

这有点令人费解,但请查看File Locking and Concurrency documentation以获取SQLite。听起来好像db处于exclusive锁定模式,这是唯一不允许读取的时间。除了解锁之外,当数据库甚至没有打开时。

我不是百分百肯定,但这就是我认为的意思。

答案 1 :(得分:1)

经过阅读并查看FMDB代码后,我发现我没有正确使用SQLITE_BUSY和SQLITE_LOCKED返回值。

根据FMDB代码,应循环进行有限数量的重试,等待很短的时间。

所以我在我的代码中实现了这一点,一切似乎都运行良好。

答案 2 :(得分:0)

是的,尽管需要考虑所有相关的多线程问题。我通常通过sqlite3_open_v2()打开同一个DB文件的多个句柄。