Вниз
Скачать: CL | DM;

Заблокировать определенную запись   Найти похожие ветки 

← →
3APA3A   (2004-06-18 22:52) [0]

Firebird 1.5
 Ест список полей с уникальным номером. В данный момент времени только один человек может редактировать запись. Если кто-то еще пытается начать редактирование записи с таким же номером - сервер выдает ошибку тогда, когда пытаешься сделать commit, то есть человек внес все изменения и ошибка... Хочется сразу знать о том, что запись находится в стадии редактирования... Как это грамотно реализовать?


← →
}{ander ©   (2004-06-20 10:49) [1]

Сделать холостой апдейт:

UPDATE TABLE1 SET KEYFIELD=KEYFIELD
WHERE KEYFIELD=:VALUE


← →
Romkin ©   (2004-06-20 14:36) [2]

Неправда, сервер выдает deadlock при попытке изменить эту запись. Сразу, не дожидаясь commit.
То есть, если в одной транзакции запись изменилась, коммит еще не сделан, то попытка изменить эту запись из другой транзакции вызовет блокировку. Хотя и рапортуется, что deadlock, но это не он :))
выход прост: транзакции на изменение должны быть короткими, как выстрел ;)



Страницы: 1 вся ветка

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



Память: 0.45 MB
Время: 0.02 c
1-1088532999
Studentik
2004-06-29 22:16
2004.07.18
Компоненты не влезают на форму под XP


8-1083144027
Ded Moroz
2004-04-28 13:20
2004.07.18
MPEG-4


1-1089194369
Abajun
2004-07-07 13:59
2004.07.18
преобразование строки в массив и обратно


6-1084950938
TransparentGhost
2004-05-19 11:15
2004.07.18
Где находится TRASConn и RASEnumConnectionsA ?


3-1087809705
denis24
2004-06-21 13:21
2004.07.18
Как закрыть сразу все открытые датасеты?




   Наверх