Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
ВнизБлокировка записей в FireBird 1.5 Найти похожие ветки
← →
3APA3A © (2004-08-15 23:00) [0]Есть таблица (a char(10), UNIQ_ID int) (для примера).
Один из клиентов начинает редактировать запись с UBIQ_ID = N1.
Как запретить другим клиентам редактировать эту же запись?
Причем это надо сделать в начале редактирования - типа при нажатии на кнопку "редактировать" выскакивала табличка "бла-бла-бла... запись редактируют..."?
← →
P.N.P. © (2004-08-15 23:26) [1]как вариант - добавить еще одно поле, где
и хранить состояние текущей записи.
или уровень изоляции транзакции установить в
concurrency
nowait
← →
jack128 © (2004-08-16 00:02) [2]послать на сервер "холостой update" update MyTable set MyField = MyField
если кто тот уже редактирует эту запись, то ты получешь исключение и можешь обработать его как хочешь..
← →
Alexandr © (2004-08-16 07:56) [3]читать
www.fibplus.com.ua
www.ibase.ru
и другое про пассивную блокировку, транзакции, deadlock
← →
3APA3A © (2004-08-17 22:14) [4]to P.N.P.
1) Но что делать если клиент "неожиданно" отключился от базы? Ведь это поле так и останется "редактируемым".
2) Где, в каком компоненте это устанавливается? Если не в компоненте, то как?
to jack128
Послать то можно, но
Клиент А открыл форму редактирования, я просто считал из базы поля и все. Как этот "холостой" update мне поможет?
to Alexandr
Читал... Вопрос тот же - где установить все эти уровни изоляции и т.д.?
← →
jack128 © (2004-08-17 22:36) [5]
> Клиент А открыл форму редактирования, я просто считал из
> базы поля и все.
так я и говорю, нужно не "просто считать из базы поля", а еще и апдейтить их..
Или ты хочешь сказать, что этот клиент пользуется не твоей программой?
← →
Petr V. Abramov © (2004-08-18 00:19) [6]если строго FireBird 1.5
то select ... where PK_FILED = :pk_value ... with lock
← →
3APA3A © (2004-08-18 06:57) [7]to Petr V. Abramov
tnx... Теперь мысли у меня пошли в верном направлении...
На "скорую руку" попробовал - именно то, что надо, но проверить до конца не успел - если клиент который сделал этот select ... with lock "отвалится" - блокировка сервером автоматически снимется?
to jack128
Теперь я понял про что Вы говорили (к чему тут "холостой" update)... tnx...
← →
Digitman © (2004-08-18 11:18) [8]
> если клиент который сделал этот select ... with lock "отвалится"
> - блокировка сервером автоматически снимется?
по идее должна сняться, ибо автооткат транзакции это должен предусматривать ... но я бы на это (в смысле - на автоанлок) не полагался в "боевом" проекте - фича достаточно молодая и, вероятно, имеет скрытые баги ... лучше таки проконсультироваться на эту тему у Димы Еманова на ньюс-конфе epsylon.public.interbase
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.024 c