powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / open the database in exclusive mode
2 сообщений из 2, страница 1 из 1
open the database in exclusive mode
    #38527593
jytuiyjht7jgyf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет

ребят подскажите что можно добавить в connection string чтобы если
второй процесс вызовет .Open() то он бы блокировался на этом вызове
пока первый не закроет базу или не завершится его процесс

покажу кодом

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SQLiteConnectionStringBuilder builder;

builder.DataSource = "database.db3";
builder.DefaultTimeout = Int32::MaxValue;
builder.Version = 3;

SQLiteConnection ObjConnection(builder.ConnectionString);
ObjConnection.Open(); // <---- вот тут должен блокироваться второй процесс



есть вариант с транзакцией

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQLiteConnectionStringBuilder builder;

builder.DataSource = "database.db3";
builder.DefaultTimeout = Int32::MaxValue;
builder.Version = 3;

SQLiteConnection ObjConnection(builder.ConnectionString);
ObjConnection.Open();

SQLiteTransaction^ transaction = ObjConnection.BeginTransaction(); // <---- тут блокируется второй процесс все нормально


// ...

	
transaction->Commit();



но мне такой вариант не подходит так как брать транзакцию на все время работы приложения мне не подходит

можно ли как то на вызове .Open() заблокировать второй процесс ? флажки так какие нибудь особые передать ?

спасибо
...
Рейтинг: 0 / 0
open the database in exclusive mode
    #38527742
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jytuiyjht7jgyf,
После открытия нужно выполнить запрос
pragma locking_mode=EXCLUSIVE;

но второй процесс думаю не будет блокироваться, а кинет исключение.
но если его обработать и в цикле ждать пока база освободится, можете получить желаемое.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / open the database in exclusive mode
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]