Насколько установлен уровень изоляции транзакции в чтении в SQLite?

StackOverflow https://stackoverflow.com/questions/5371220

Вопрос

Согласно ответу на это почта Здесь утверждается:

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

Работая в 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?

Это было полезно?

Решение

Чтобы выполнить незавершенные чтения, см. Следующий вопрос и ответ:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top