Главная страница
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.043 c
3-1092555810
tERRORist
2004-08-15 11:43
2004.09.12
UNIQUEIDENTIFIER (IsRow GUID) vs NUMERIC(38,0) (IDENTITY)


3-1092045182
Black-Grin
2004-08-09 13:53
2004.09.12
TDBF - проблема закрытия файла


1-1093798445
Zhekson
2004-08-29 20:54
2004.09.12
Не могу на Delphi7 поставить RXLib выдаёт =>


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


1-1093617952
NeVIP
2004-08-27 18:45
2004.09.12
TCustomDockForm.Caption:= ???????