書き込み中にSQLite dbから読み取ることは可能ですか?
書き込み時にアクセスがブロックされることは承知していますが、読み取りも同じですか?
書き込み中にSQLite dbから読み取ることは可能ですか?
書き込み時にアクセスがブロックされることは承知していますが、読み取りも同じですか?
少し読んでFMDBコードを調べたところ、SQLITE_BUSYとSQLITE_LOCKEDの戻り値が正しく使用されていないことがわかりました。
FMDBコードによると、限られた回数の再試行をループし、しばらく待つ必要があります。
だから私はそれを私のコードに実装しました、そしてすべてがうまくいくようです。
少し複雑ですが、SQLiteのFile Locking and Concurrency documentationを確認してください。データベースがexclusive
ロックモードの場合、読み取りが許可されないのはそのときだけです。ロックが解除されている以外に、データベースが開いていない場合。
100% 確信があるわけではありませんが、それが意味することだと思います。
はい。ただし、関連するマルチスレッドの問題をすべて考慮する必要があります。通常、sqlite3_open_v2() を使用して、同じ DB ファイルへの複数のハンドルを開きます。