Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
14-1093278061
Гость...
2004-08-23 20:21
2004.09.12
примеры использования fftw.dll


4-1090998661
TUser
2004-07-28 11:11
2004.09.12
GetWindowPlacement


14-1091046073
Сергей Суровцев
2004-07-29 00:21
2004.09.12
И снова о вечном...


4-1091120974
DeMus
2004-07-29 21:09
2004.09.12
Как подключить в программе кассовый аппарат


14-1092749155
Aleksandr.
2004-08-17 17:25
2004.09.12
Подскажите, кто работал с MemProof, что тут к чему!




   Наверх