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

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

Многопользовательский режим [MSSQL]


Страницы:   1 2

freeman82 ©   (2004-06-09 09:08:00) 

Здравствуйте.
В приложении с помощью TQuery делаем запрос на выборку,получаем НД.Затем скажем пользователь A,выбирает запись и открывает ее для редактирования,а в этот момент пользователь B удаляет эту запись.Как бороться с такими ситуациями?


Соловьев   (2004-06-09 09:30:00) [21]


> [6] Johnmen ©   (09.06.04 09:29)

супер :))))) надо будет такое написать :)))))


Johnmen   (2004-06-09 09:29:00) [22]

>ЮЮ ©   (09.06.04 09:26) [5]

"вы так долго коррекировали запись, что её уже состарилась и померла"

:)


ЮЮ   (2004-06-09 09:26:00) [23]

А зачем 1-й пользователь собрался редактировать запись, которая, по мнению 2-го, вообще не должна существовать? Пусть уж пользователи разбираются, кто прав, а кто нет, а ты просто обработай эту ситуации и скажи: "вы так долго коррекировали запись, что её уже удалили"


Соловьев   (2004-06-09 09:24:00) [24]


> Ни как не бороться в таких ситуациях, да и вообще какая
> здесь может быть борьба если среда многопользовательская

Бороться можно и нужно. Все зависит от задач, надо внимательно изучить предметную область и решить такой конфликт:

> A,выбирает запись и открывает ее для редактирования,а в
> этот момент пользователь B удаляет эту запись

1-й вариант - А должен открывать транзакцию с блокировкой, тогда В только прочитать сможет, а иногда и того не сможет(смотря в какой транзакции он будет смотреть).
2-й вариант - Возможно такая ситуция. что А и В будут открывать набор данных в транзакции с одним уровнем изоляции - тогда просто при сохранении А получит ошибку, что такой записи нет. Возможно такое поведение и нормально для задачи. ИМХО, гадать на кофейной гуще не мое дело. Все должен решить разработчик. А решить проблему можно.


Johnmen   (2004-06-09 09:24:00) [25]

А с кем/чем борьба ?


Silver Alex   (2004-06-09 09:18:00) [26]


> Соловьев ©   (09.06.04 09:11) [1]

то есть перед редактированием открываем транзакцию, а потом закрываем?Интересное решение.А если, например, другой пользователь перед твоим редактированием удалил эту запись?Ни как не бороться в таких ситуациях, да и вообще какая здесь может быть борьба если среда многопользовательская.Другое дело когда при изменении одной записи идет изменение\добавление записей еще в других таблицах и все это является одной операцией , тогда транзакции


Соловьев   (2004-06-09 09:11:00) [27]

Транзакции


Страницы:   1 2

Наверх

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