Главная страница
    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.46 MB
Время: 0.027 c
11-1080553866
Неуловимый Джо
2004-03-29 13:51
2004.09.12
RegKeyGetValueNames


1-1093519284
WellSlava
2004-08-26 15:21
2004.09.12
Использование BPL


4-1091106191
panov
2004-07-29 17:03
2004.09.12
Иконка в SysTray. PopupMenu


3-1092137014
Piter
2004-08-10 15:23
2004.09.12
Как определить наличие Embedded версий баз?


1-1093517944
aleks-ran
2004-08-26 14:59
2004.09.12
Возврат значения (ий) в вызывающую форму





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский