![]() |
|
Модераторы: gambit |
![]()
|
|
| WinNet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 4.3.2007 Где: г.Москва Репутация: нет Всего: нет |
Необходимо обеспечить паралельную работу множества пользователей с БД, работающих с ней автономно.ADO.NET and C#.
К примеру: В фирме работают 2-ва сотрудника, работающих с базой данных, Джессика и Боб. 1) Джессика и Боб сделали один и тот же запрос к базе даннх (SQL Server 2005) с помощью клиентского приложения, заполнив DataTable,они приступили к редактированию данных (Автономно). Боб отредактировал строку №13 и сохранил изменения в БД (SQL Server 2005) , Джессика тоже отредактировала эту строку , но данные в ней уже изменил Боб,значит данные введенные Джессикой заменят данные которые ввел Боб. Как сообщить Джессики что данные уже изменил Боб. (Как обновить данные в клиентских приложениях всех сотрудников если кто то из них изменил данные???) 2) Тоже самое но с добавлением новых строк. |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 1 Всего: 57 |
Есть несколько способов сделать это. Что подойти к вопросу подкованно, нужно изучить понятия optimistick locking, pessimistick locking. А можно и так: http://f-search.ru/?q=concurrency
|
|||
|
||||
| ArsNov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
А можно какие нибудь доки по этой теме на русском? Optimistick лок ,как я понял, работает так: когда пытаешься сделать update данные в бд сравниваются с теми, которые пытаемся изменить. Если они разные, то апдейта не происходит, происходит ошибка concurrency error, которую обрабатываем. Вот даже примерчик на VB.net нашел в мсдн:
А как работает Pessimistick? и что лучше использовать в больших базах данных и с большим количеством пользователей программы? Это сообщение отредактировал(а) ArsNov - 29.8.2007, 14:21 |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 1 Всего: 57 |
Это классические вопросы, они освещены... должны быть освещены в любой книге по работе с БД. Как следует из названий, оптимизм следует применять в случаях, когда коллизия маловероятна. И наоборот, если ты ожидаешь, что юзеры будут часто конкурировать в плане редактирования одних и тех же данных, то надо быть пессимистом
|
|||
|
||||
| ArsNov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |