powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Эксклюзивный доступ к записи.
3 сообщений из 3, страница 1 из 1
Эксклюзивный доступ к записи.
    #33573143
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Не совсем уверен (совсем неуверен), что делаю правильно, подскажите,
пожалуйста.

Нужен длительный эксклюзивный доступ конкретного клиента к записи. В том
числе, даже если
был перезапуск сервера.

В голову приходит добавить к записи пару атрибутов "Занята"(Locked) и "Кто
обрабатывает"(идентификатор клиента, "занявшего" запись).

Вопрос: как выполнить блокировку правильно, чтобы уверенно знать, что это
именно я заблокировал запись?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Старт пишущей транзакции
************************
Update MyTable
 set
  Locked =  1 ,
  Locker_Id = :Locker_Id
 where
   MyTable_Id = :MyTable_Id
    and
  Locked =  0 ;

Коммит
**********/* Чтение в READ_COMMITED транзакции */
Select count(*) From MyTable
 where Locked =  1  and Locker_Id = :Locker_Id and MyTable_Id = :MyTable_Id
/*

Locked = 1/0 заблокирована/незаблокирована
Locker_Id = идентификатор пользователя, выполнившего блокировку
MyTable_Id = идентификатор записи

*/

Если получаю дедлок по первой операции, или 0 по второй, то считаю, что
блокировка не удалась, а если дедлока нет, и вторая возвращает >0, то все
ОК, это моя запись.

Этого достаточно?
Спасибо.
(Сервер - FireBird 1.53)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Эксклюзивный доступ к записи.
    #33573364
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем делать что-либо на одну таблицу,если можно сделать один раз и навсегда. Делаем таблицу логических блокировок с нужными полями и с обязательным полем Наименование таблицы, Наименование поля/полей PK и Значение/Значения PK. А по сути - так. Плюс поиск по слову "Блокировка" и Логическая блокировка
...
Рейтинг: 0 / 0
Эксклюзивный доступ к записи.
    #33573552
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо,
для FB/IB хорошо описано в:

http://www.interbase-world.com/ru/articles/763.php

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Эксклюзивный доступ к записи.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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