Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 18:18   #1
denisbobrov3
 
Регистрация: 23.11.2009
Сообщений: 4
По умолчанию Блокировка записи в FireBird

Всем здравствуйте. Есть база на FireBird, клиентское приложение разрабатывается в Delphi 7. В базе есть две таблицы - клиенты и карточки клиентов. На форме два комбобокса - один с ФИО клиентов, другой при выборе клиента заполняется номерами карт. В общем, необходимо, чтобы при выборе карты Х пользователем А соответствующая запись в таблице "блокировалась", то есть пользователь В при попытке выбора карты Х получал сообщение "C данной картой работает другой пользователь".
denisbobrov3 вне форума Ответить с цитированием
Старый 02.01.2010, 01:06   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

В самом сервере FB никак из-за изолированности транзакций.
В своем проекте я делал доп. таблицу с перечнем пользователей, где помимо самих пользователей записывались идентификаторы записей из таблиц (идентификаторы со сквозной нумерацей по всем таблицам, можно чего-то и другое придумать), которые вызываются пользователем на редактирование. После окончания редактирования признак этот в доп. таблице снимался.
Дополнительная таблица дает возможность приложению проверять редактируется ли запись другим пользователем и, и если да, то другие не могут этого делать (приложение не запускает форму для редактирования с предупреждением).
На самом деле, это лишняя головная боль для разработчика. Если подключение некорректно отрубилось при редактировании, то признак редактирования надо как-то снимать. А вот как... Это уже проблемка.
А вообще то, есть более профессиональные подходы к "блокировке", о которых можно почитать здесь:
IBase Как заблокировать запись в InterBase/Firebird

Последний раз редактировалось Скандербег; 02.01.2010 в 01:30.
Скандербег вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Firebird.pFIBQuery.Вставка записи artemavd БД в Delphi 45 28.12.2009 18:47
Блокировка клавиатуры Raivolo Помощь студентам 3 09.02.2009 03:32
Блокировка клавиатуры bunner Помощь студентам 1 05.02.2009 20:15
Как получить ID для новой записи с использованием триггеров?(Firebird) Paul Hindenburg БД в Delphi 20 01.06.2008 16:39
Блокировка процессов Zeraim Операционные системы общие вопросы 5 17.04.2008 13:02