Главная страница
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.012 c
3-52802
Afonya
2003-01-31 17:26
2003.02.17
Передача DBHanle из осн. формы в dll-форму


3-52794
Сергей
2003-01-31 16:44
2003.02.17
Ошибка DBD


14-53215
Ketmar
2003-01-30 16:31
2003.02.17
повторю насущный вопрос: работа в Киеве.


1-52840
AlexanderSK
2003-02-07 14:00
2003.02.17
Удаление формы!


1-52850
reticon
2003-02-06 11:05
2003.02.17
чтение из файла