powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
2 сообщений из 2, страница 1 из 1
Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
    #38448533
AlexandrSk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть одна база FireBird 2.5 и две программы с ней взаимодействующие.

При работе первая програма делает lock на все данные с которыми в текущий момент работает пользователь. Программа сторонняя, написана давно, исходников нет. Вторая программа(наша) работает с выборками из этой же базы. Задача: если при работе во второй программе в выборку попали данные, которые в текущий момент редактируются в первой программе, то необходимо превать работу и вывести сообщение(именно прервать, а не считать назакоммиченые данные).

Не нашел чего-то полезного на эту тему в интернете. (Буду рад ссылке)

Пытался проверять lock на запись в таблице фэйковым апдейтом(update table set value = value where id = @id) с таймаутом команды выставленным на пару секунд. Не помогло, транзакция "залипает" пока запись в таблице залочена.
...
Рейтинг: 0 / 0
Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
    #38448677
AlexandrSk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кому будет полезно.

Проблема решилась следующим образом. Для транзакции нужно было выствавить опцию NO_wait. Похоже что для всех "уровней изоляции" она была определена как Wait. В моем случае выставлялось так :
FbTransaction tran = cnn.BeginTransaction(FbTransactionOptions.NoWait);
(на самом деле не сразу приходи в голову что в конструктор можно передать не только IsolationLevel)
Попытка выполнить команду апдейта на залоченую запись в таблице сразу возвращает ошибку update conflict, таймаут ставить не нужно.

Впринципе это то, о чем я спрашивал. Тему можно закрывать.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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