Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.17;
Скачать: CL | DM;

Вниз

Блокировка записи в TQuery-- TUpdateSQL.   Найти похожие ветки 

 
KonuhovSegey   (2003-01-23 07:46) [0]

Кто знает как заблокировать запись для редактирования в TQuery c включенными кэшированными изменениями, и подключенным TUpdateSQL.

Если отключаешь кэшированные изменения, то он блокируется автоматически, для простых запросов, а у меня есть запросы с несколькими таблицами. Т.е. их можно обновить только через кэшированные изменения и TUpdateSQL. Но тогда запись не блокируется, т.е. могут быть конфликты обновления.


 
ЮЮ ©   (2003-01-24 07:05) [1]

В чём конфликт то? Кто последний сохранится ( еслм в Where стоит только ключевое поле), тот и прав. Если же в Where поставить все поля записи, то, наоборот , сохранится только первый.


 
KonuhovSegey   (2003-01-24 12:53) [2]

Мне необходимо именно заблокировать запись,
Что бы никто другой и не смог начать ее изменять,
т.к. изменений может быть много и если они потеряются, то это плохо.
Или найти надежный способ проверить, не изменяется ли кем-то эта запись.


 
Ops   (2003-01-24 13:19) [3]

Посади TQuery на транзакцию которая блокирует записи при считывании... Может так получится...
просто невидно на таблице никак до Applay и Commmit изменения


 
KonuhovSegey   (2003-01-24 18:29) [4]

А какие параметры транзакции необходимо установить для Paradox, чтобы она блокировала.
И как в нем отдельный TQuery, подсоеденить к такой транзакции, а остальные к неблокирующей.
В IB да, а в Paradox ???


 
ЮЮ ©   (2003-01-25 03:05) [5]

>Мне необходимо именно заблокировать запись,
Что бы никто другой и не смог начать ее изменять,
т.к. изменений может быть много и если они потеряются, то это плохо.

Плохо то, что у нескольких пользователей вдруг возникло желание править одну и ту же запись :-). То есть это означает, что у нескольких пользователь на руках одновременно имеется один и тот же "документ", но в нём совершенно различные данные?

>Или найти надежный способ проверить, не изменяется ли кем-то эта запись.

Если уж создал такую "конфликтную" структуру, то и создавай свой механизм "разрешения конфликтов", например "Таблицу заблокированных записей"


 
KonuhovSegey   (2003-01-30 14:33) [6]

У пользователей недолжно возникать желания изменять один и тот же документ. Но хотелось бы исключить такую возможность.
Если использовать TTable вместо TQuery-->TUpdateSQL, то все работает автоматически, но требуется и именно так.



 
MsGuns ©   (2003-01-30 14:40) [7]

>KonuhovSegey (30.01.03 14:33)

Что бы ты не пытался сделать, чтобы исключить подобные ситуации (редактирование одного "документа" с двух и более мест), все равно все это не приведет к результату, если не будут действовать администативные правила работы с БД. Я лично намертво усвоил это постулат лет через много после подобных "попыток".



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

Текущий архив: 2003.02.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
14-53258
blackman
2003-02-01 21:56
2003.02.17
Не прогой единой жив человек !


1-53040
iNew
2003-02-11 04:30
2003.02.17
Как из ексепшина EInOutError вытащить ErrorCode?


3-52764
skirdov
2003-01-30 22:47
2003.02.17
Редактирование данных в DBGrid


14-53212
DiamondShark
2003-01-31 15:39
2003.02.17
Тут как-то о медальках говорили...


3-52725
Bazzilio
2003-01-30 07:21
2003.02.17
Проблема с DBGrid