1

現在、sqlite3 を使用して Windows システム上のデータベースと通信する .dll を作成しています。

今は非常に単純で、データベースからの挿入と選択を行うテスト プログラムを作成しました。

ただし、この問題は、私のdllが同じシステム上の複数のプログラムで使用され、それぞれが同じデータベースファイルに書き込むことです。もちろん、これによりミューテックスの問題が発生します。

複雑な接続プールを作成する前に、sqlite3 ライブラリがこれをどの程度サポートしているかを知りたいです。doco によると、sqlite3_open_v2関数に指定されたパラメータで指定された「共有キャッシュ」モードや「ミューテックスなし」モードなどがあります: http://www.sqlite.org/c3ref/open.html

また、いくつかの sqlite3 ラッパーを探しましたが、マルチアクセスのニーズに合ったものが見つかりません。

同じ .dll を使用する複数のプロセスから sqlite3 db ファイルに書き込んだ経験がある人はいますか? または、それらを使用して運が良かった人はいますかSHARED_CACHES-私はあらゆる種類の問題に遭遇しているようです.

この問題についての助けは素晴らしいでしょう、ありがとう!

〜ダン

4

1 に答える 1

0

SQLite3 を介して同じデータベース ファイルにアクセスしている限り、問題ありません。実際、SQLite3 は、同じ DB ファイルにアクセスする複数のプロセスを処理するように特別に設計されています。

SQL は、仕様として、すでに複数のアクセスを処理しており、アトミック アクセスなど (トランザクションなど) の制御を提供します。これらのコントロールを適切に使用している限り、ファイルする必要があります。

SQLite3 に問題があるのは複数のスレッドです。

于 2012-08-20T06:54:23.527 に答える