Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.12;
Скачать: CL | DM;

Вниз

Блокировка записей в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
1-1093532609
mouse_web
2004-08-26 19:03
2004.09.12
Ошибка String


14-1093018781
Igorek
2004-08-20 20:19
2004.09.12
Патч для TApplication (помидорами не бросаться!!!) :-)))


1-1093360476
appendix
2004-08-24 19:14
2004.09.12
синхронизация stringgrid


1-1093871349
Erik1
2004-08-30 17:09
2004.09.12
Как изменить во время (Pause, Resume) TimeOut сервиса?


6-1089111155
fylhtq
2004-07-06 14:52
2004.09.12
Invalid pointer operation при пинге - в чем засада?