Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Блокировка записи в TQuery-- TUpdateSQL. [D5, Paradox]


KonuhovSegey ©   (2003-01-23 07:46:00) 

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

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


MsGuns   (2003-01-30 14:40:00) [1]

>KonuhovSegey (30.01.03 14:33)

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


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

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


ЮЮ   (2003-01-25 03:05:00) [3]

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

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

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

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


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

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


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

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


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

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


ЮЮ   (2003-01-24 07:05:00) [7]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо