2011-09-14 6 views
0

私はsqlite3ベースでトランザクションを開始して何かを挿入します。当然、それにロックがあり、ジャーナルファイルに従うでしょう。同時に、あるsqliteプラグマのintegrity_checkを実行するが、 "in transaction"のものではない別のCプログラムがあるかもしれません。sqlite3トランザクションの検出

I 何かをする前に取引を検出したいと考えています。しかし、私はそれをしなかった。やるそこsqlite3ののソースコードで何かinTransactionを持っているが、残念ながらそれは、不透明な構造にあります....

だから、私はあなたの問題を理解していれば、私は知りませんT_T

答えて

1

私を助けて修正してください私が間違っているなら私。データベースがロックされているかどうかを知りたいですか?

私はPythonでSQLiteを使用していますので、C言語ではもっと洗練された処理を行うことができます。私は、SQLiteがロックされたときにSQL_BUSYを返すと思います。この状況のた​​めに独自のハンドラを定義することができます。

this page、おそらくthis oneをチェックしてください。

SQL_BUSYを取得した場合は、操作を実行して再試行したり、何でもしてみることができます。

+0

あなたの返事をありがとうございますが、それは私が探しているものではありません...私は正しく説明していないし、私はそれをreditedしました。 – alwinlin

+0

あなたはおそらく[ここ](http://stackoverflow.com/questions/4153091/sqlite-check-reader-writer-lock)より良い答えを見つけることができますが、dbのロックにも関連しています。 –

関連する問題