Главная страница
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.017 c
3-52728
Calm
2003-01-30 11:17
2003.02.17
Не работает select * from MyTable!


1-52897
race1
2003-02-08 10:58
2003.02.17
простой вопрос


1-52833
super_alex
2003-02-07 12:35
2003.02.17
Как выйти из цикла?


3-52705
Wizard
2003-01-28 16:41
2003.02.17
Отчеты


1-52983
ltexcimer
2003-02-10 11:29
2003.02.17
номер строки в StringGrid