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

ребят подскажите что можно добавить в 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
16.01.2014, 08:19
    #38527742
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
open the database in exclusive mode
jytuiyjht7jgyf,
После открытия нужно выполнить запрос
pragma locking_mode=EXCLUSIVE;

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


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