SQLite.dbファイルを読み取り専用で開いて読み取りたいのですが。この間、他の人がそれに触れないことを保証します(おそらく、読み取り専用を除いて)。
私がSQLite3から必要としているのは、ディスクに何も書き込まず(具体的には、ここで説明されているものはどれも)、ファイルにファイルシステムロックを使用しないことです。
質問するのは多すぎますか?
一部の Unix で実行している場合は、unix-none
VFSを使用してすべてのロックを無効にすることができます。
Windows では、SQLite は常にロックを使用します。本当にロックを回避したい場合は、独自の VFS を作成するか、ロック システム コールを で上書きすることができますxSetSystemCall
。
SQLite が一時ファイルを必要とする場合、一時ファイルの作成を防ぐことはできません。ただし、ディスクではなくメモリ内に作成するように構成できます。
VFS には、注入できる Lock メソッドがありません。したがって、ダミーの LockFile および LockFileEx メソッドを挿入する直接的な方法はありません。
これらのメソッドは sqlite3_io_methods (winIoMethod) 内で参照され、SQLite ソース コードを変更せずに実行時に変更するのは簡単ではないようです。
では、私の理解が正しければ、VFS は正しい方向ではないのでしょうか? またはそれは?
読み取り専用ユーザーを使用できますか?そのような役割がSQLLiteに存在するかどうかはわかりません。