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

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

Блокировка записей [D6, IB6.x]


me2 ©   (2003-03-13 09:09:00) 

Народ, объясните пожалуйста как устанавливается блокировка записи в многопользовательском приложении, т.е. если я редактирую запись никто другой ее редактировать не сможет.


Johnmen   (2003-03-13 12:14:00) [1]

>SergeyNew (13.03.03 11:46)
>...другой пользователь уже не может после этого изменять запись

Очень даже может ! Просто надо определиться со стартом и завершением транзакций.

>Чтобы редактировать эту надо выйти из проги и зайти в нее опять

Значит прога написана кривовато...:)


SergeyNew   (2003-03-13 11:46:00) [2]

2zacho

Если один пользователь выполняет Transaction.CommitRetaining то другой пользователь уже не может после этого изменять запись, т.к. выдается ошибка. Чтобы редактировать эту надо выйти из проги и зайти в нее опять. Если же делать Transaction.RollBackRetaining, то другой юзер может редактировать запись. Что делать?


zacho   (2003-03-13 11:06:00) [3]

Получишь от сервера сообщение об ошибке. Вот его и обрабатывай.


me2   (2003-03-13 09:56:00) [4]

А как сообщить пользователю, что в данный момент запись отредактировать неудалось, а то он подумает, что внес изменения, а на самом деле - нет.


zacho   (2003-03-13 09:20:00) [5]

Почитай на www.ibase.ru и в документации о транзакциях, уровнях изоляции и т.п.
Коротко: если в контексте какой-либо транзакции были изменены записи, то до завершения этой транзакции другие транзакции изменить эти записи не смогут. Если тебе нужно заблокировать запись, можно сделать "холостой" апдейт, т.е. UPDATE MYTABLE SET MYFIELD=MYFIELD WHERE ...


Наверх

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