Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизЗаблокировать определенную запись Найти похожие ветки
← →
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 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.085 c