Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Паралельная работа 
:(
    Опции темы
WinNet
Дата 25.8.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 4.3.2007
Где: г.Москва

Репутация: нет
Всего: нет



Необходимо обеспечить паралельную работу множества пользователей с БД, работающих с ней автономно.ADO.NET and C#.

К примеру:

В фирме работают 2-ва сотрудника, работающих с базой данных, Джессика и Боб. 

1) Джессика и Боб сделали один и тот же запрос к базе даннх (SQL Server 2005) с помощью клиентского приложения, заполнив DataTable,они приступили к редактированию данных (Автономно). Боб отредактировал строку №13 и сохранил изменения в БД (SQL Server 2005) , Джессика тоже отредактировала эту строку , но данные в ней уже изменил Боб,значит данные введенные Джессикой заменят данные которые ввел Боб. Как сообщить Джессики что данные уже изменил Боб. (Как обновить данные в клиентских приложениях всех сотрудников если кто то из них изменил данные???)

2) Тоже самое но с добавлением новых строк.

PM ICQ   Вверх
December
Дата 25.8.2007, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 1
Всего: 57



Есть несколько способов сделать это. Что подойти к вопросу подкованно, нужно изучить понятия optimistick locking, pessimistick locking. А можно и так: http://f-search.ru/?q=concurrency


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
ArsNov
  Дата 29.8.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 1.9.2005

Репутация: нет
Всего: 1



А можно какие нибудь доки по этой теме на русском?  Optimistick лок ,как я понял, работает так: когда пытаешься сделать update данные в бд сравниваются с теми, которые пытаемся изменить. Если они разные, то апдейта не происходит, происходит ошибка concurrency error, которую обрабатываем. Вот даже примерчик на VB.net нашел в мсдн:
Код

try
SqlDataAdapter1.update(myDataset)
Catch ex As DBConcurrencyException
 Dim customErrorMessage As String
 customErrorMessage= "Concurrency violation" & vbCrLf
 customErrorMessage+=Ctype(ex.Row.Item(0), String)
 messageBox.show(customErrorMessage)
 'А тут будет часть кода, которая обработает эту ошибку
 'в зависимости от нужной логики программы
End try

А как работает Pessimistick? и что лучше использовать в больших базах данных и с большим количеством пользователей программы?

Это сообщение отредактировал(а) ArsNov - 29.8.2007, 14:21
PM MAIL ICQ   Вверх
December
Дата 29.8.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 1
Всего: 57



Это классические вопросы, они освещены... должны быть освещены в любой книге по работе с БД. Как следует из названий, оптимизм следует применять в случаях, когда коллизия маловероятна. И наоборот, если ты ожидаешь, что юзеры будут часто конкурировать в плане редактирования одних и тех же данных, то надо быть пессимистом smile Конечный ответ можешь дать только ты, проанализировав свою задачу.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
ArsNov
Дата 30.8.2007, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 1.9.2005

Репутация: нет
Всего: 1



Вот нашел на русском : ссылка

Это сообщение отредактировал(а) ArsNov - 30.8.2007, 10:58
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.