Как установить уровень изоляции транзакции для ReadUncommitted в SQLite?

В ответе на этот пост говорится:

Знаете ли вы, что ReadUncommitted вернется в сериализованную изоляцию, если вы не включили общий кэш, и оба соединения не принадлежат одному потоку?

Работая в C#, я затем определил импорт DLL следующим образом:

[DllImport("System.Data.SQLite.dll", CallingConvention=CallingConvention.Cdecl)]
public static extern int sqlite3_enable_shared_cache(int enable);

Я вызвал эту функцию, чтобы включить кеш, и при вызове получил статус успешного результата 0. Тем не менее, я все еще получаю исключение "уровень изоляции", когда выполняю строки ниже и пытаюсь установить уровень изоляции на ReadUncommitted.

string connectionString = @"data source=d:\db\test.db3;datetimeformat=Ticks";
SQLiteConnection conn = new SQLiteConnection(connectionString);
conn.Open();
IDbTransaction tran = conn.BeginTransaction(IsolationLevel.ReadUncommitted);

Этот вопрос связан с другим вопросом, который я разместил здесь.

Как я могу выполнить запрос с уровнем изоляции ReadUncommitted в SQLite?

1 ответ

Решение

Для выполнения незафиксированных прочтений см. Следующий вопрос и ответ:

Как выполнить SQLite запрос с помощью считывателя данных без блокировки базы данных?

Другие вопросы по тегам