2016-07-08 17 views
0

2つのデータベースを比較し、2番目ではなく1番目にあるテーブルをマージするC++/Sqliteユーティリティがあります。新しいテーブルが追加されるデータベースがオープンされているか、またはその時点で他のプロセスで使用されていた場合、マージは行われず、適切なエラーが表示されるはずです。どうやってやるの?sqliteデータベースが開いているかどこかで使用されているかを確認

答えて

2

データベースファイルがSQLiteライブラリを介してのみアクセスされる場合は、BEGIN EXCLUSIVEを使用して、他の誰かがアクティブなトランザクションを持っているかどうかを確認できます。

ただし、開いているが非アクティブな接続はこれで検出できません。開いているファイルを確認するには、オペレーティングシステムのメカニズムを使用する必要があります。

関連する問題