C#では、SQLite接続を開く方法in WAL mode?ここでWALモードでSQLite接続を開く方法
は、私は通常モードで開く方法を示します。ここでは
SQLiteConnection connection = new SQLiteConnection("Data Source=" + file);
connection.Open();
// (Perform my query)
C#では、SQLite接続を開く方法in WAL mode?ここでWALモードでSQLite接続を開く方法
は、私は通常モードで開く方法を示します。ここでは
SQLiteConnection connection = new SQLiteConnection("Data Source=" + file);
connection.Open();
// (Perform my query)
SQLiteConnection接続文字列で指定するファクトリアプローチはどうですか?例えば
public static class Connection
{
public abstract SQLiteConnection NewConnection(String file);
}
public class NormalConnection : Connection
{
public override SQLiteConnection NewConnection(String file)
{
return new SQLLiteConneciton("Data Source=" + file);
}
}
public class WALConnection : Connection
{
public override SQLiteConnection NewConnection(String file)
{
return new SQLLiteConnection("Data Source=" + file + ";PRAGMA journal_mode=WAL;"
}
}
ため
コードをテストし、私はあなたがそれを使用するときに、あなたがそのように行うことができます、あなたがアイデアを得ることを願っていません。答えは、それを含んでヒラメに
SQLLiteConnection conWal = new WALConnection(file);
conWAL.Open();
SQLLiteConnection conNormal = new NormalConnection(file);
conNormal.Open();
は私のより少なくより完璧なソリューションです:
SQLiteConnection connection = new SQLiteConnection("Data Source=" + file);
connection.Open();
using (var command = new SQLiteCommand(sqliteConnection))
{
command.CommandText = "PRAGMA journal_mode=WAL";
command.ExecuteNonQuery();
}
// (Perform my query)
あなたはあまり冗長何かを知っていれば、私は聞いて幸せになりますそれについて!
下の行は、私が探していたもので、多くの感謝:WALモード、他のジャーナリングモードとは異なり
」の
new SQLiteConnection("Data Source=" + file + ";PRAGMA journal_mode=WAL;")
なぜ、彼に答えを授与しなかったのですか? – Mawg
@Mawg:そうです。今やりました :-) –
持続性、PRAGMA journal_mode = WALは永続的です。プロセスがWALモードを設定し、データベースを閉じて再度開くと、データベースはWALモードに戻ります。
http://www.sqlite.org/wal.html
私はそれを正しく理解していれば、これはあなたが一度データベースのWALモードを設定することができ、すべての接続にそれを設定する必要はありませんことを意味します。
あなたはSQLiteのためのコマンドラインシェルでそれを行うことができます
+1、あなたのコードの最後の行は、私が探していたソリューションであり、おかげでたくさん!工場のアプローチは面白いかもしれませんが、私の場合は必要ありません。 –
あなたのアプローチは、SQLite接続文字列で許可されるパラメータの数を考慮して、コンビナトリアルの興味深いケーススタディです:) – Mark