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

Record was changed by another user   Найти похожие ветки 

← →
alextov   (2001-12-17 19:38) [0]

Сабжевая надпись периодически появляеться при редактированиии
таблицы(TTable, Oracle) и отказывается редактироваться;
чтобы это значило


← →
panov ©   (2001-12-17 21:04) [1]

Так то и значит, что написано: запись была изменена другим пользователем, т.е. пока один юзер ее редактировал(естественно, локальную копию записи ), другой пользователь успел ее изменить. Также запись может быть захвачена другим пользователем (состояние "locked").


← →
alextov   (2001-12-17 21:20) [2]

Так как этого избежать
то-есть что сделать дабы данная проблема не вознокала вновь
Значение свойства TransIsolation компонента DataBase как -то влияет на это дело?


← →
petr_v_a ©   (2001-12-17 21:39) [3]

Еще на эту пакость св-во UpdateMode влияет. А вообще-то не есть хорошо использовать TTable при работе с SQL-серверами


← →
petr_v_a ©   (2001-12-17 21:54) [4]

А TransIsolation лучше поставьте в ReadCommited и не трогайте :)
DirtyRead Oracle реально не поддерживает, а с RepeatableRead Вы обязательно нарветесь на ora-01555, и, скорее всего,бороться с ней будете очень долго, или Вас админ в темном переулке за ноги подвесит :)


← →
alextov   (2001-12-19 23:45) [5]

Спасибо за ответы, но из них возникает еще пара вопросов.
1) И все-таки что делать, кроме как поексперементировать со
св-вом UpdateMode .
2) А в текстовом виде ora-01555 как звучит?


← →
XPDeveloper   (2001-12-20 00:01) [6]

Может прога не использует транзакции? Или она незавершенная и без отката?
Очень похоже. Лучше изменения класть в транзакцию и ее завершать или откатывать. Причем в коде предусмотреть чтобы подоготвка данных велась до начала транзакции, и вообще кроме изменения данных в транзакции не было. Это сокращает время ее протекания и позволяет избегать блокировки записей. Кроме этого сажаешь на try-except- Rollback (откат) и про блокировки можно забывать. Это безопасный способ. Второй - это пользовать запросы для обновления записей,в этом случае запрос сам пользует наилучшую схему вноса данных, но в большинстве случаев - эта операция протекает дольше чем самоличное изменение данных в записи, но с точки зрения безопасности - лучше.
Схема такова для самоличного изменения:
BeginTrans; // начинаем транзакцию
try
//вносим данные в табличку
CommitTrans; // заканчиваем транзакцию
except
// куда нибудь выводим диагностику ошибки
RollBack; //откат-отмена транзакции
end;


← →
alextov   (2001-12-21 10:54) [7]

Спасибо за обстоятельный ответ.
Буду пробовать



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

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



Память: 0.46 MB
Время: 0.008 c
3-75521
Alexandr
2001-12-21 10:44
2002.01.24
Печать ценников


1-75560
Starkom
2001-12-22 13:45
2002.01.24
Starkom


3-75514
ray_wagner
2001-12-19 08:45
2002.01.24
Вопрос про DBGrid


3-75525
frostbite
2001-12-21 14:48
2002.01.24
Определение структуры БД


14-75677
Jaya1
2001-11-30 20:14
2002.01.24
описание компонентов в Инете




   Наверх