|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.12.2009, 18:18 | #1 |
Регистрация: 23.11.2009
Сообщений: 4
|
Блокировка записи в FireBird
Всем здравствуйте. Есть база на FireBird, клиентское приложение разрабатывается в Delphi 7. В базе есть две таблицы - клиенты и карточки клиентов. На форме два комбобокса - один с ФИО клиентов, другой при выборе клиента заполняется номерами карт. В общем, необходимо, чтобы при выборе карты Х пользователем А соответствующая запись в таблице "блокировалась", то есть пользователь В при попытке выбора карты Х получал сообщение "C данной картой работает другой пользователь".
|
02.01.2010, 01:06 | #2 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
В самом сервере FB никак из-за изолированности транзакций.
В своем проекте я делал доп. таблицу с перечнем пользователей, где помимо самих пользователей записывались идентификаторы записей из таблиц (идентификаторы со сквозной нумерацей по всем таблицам, можно чего-то и другое придумать), которые вызываются пользователем на редактирование. После окончания редактирования признак этот в доп. таблице снимался. Дополнительная таблица дает возможность приложению проверять редактируется ли запись другим пользователем и, и если да, то другие не могут этого делать (приложение не запускает форму для редактирования с предупреждением). На самом деле, это лишняя головная боль для разработчика. Если подключение некорректно отрубилось при редактировании, то признак редактирования надо как-то снимать. А вот как... Это уже проблемка. А вообще то, есть более профессиональные подходы к "блокировке", о которых можно почитать здесь: IBase Как заблокировать запись в InterBase/Firebird Последний раз редактировалось Скандербег; 02.01.2010 в 01:30. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |