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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с БД многих пользователей, Средства Framework 2.0 
:(
    Опции темы
albert21
  Дата 27.4.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем доброго здоровья.
Одним из преимуществ ADO.NET является работа в "отсоединённом" режиме (работа с локальной копией данных с последующей передачей внесённых изменений). Но как организовать работу с БД многих пользователей: например, один юзер залил БД и редактирует строчку X, в это же время другой юзер открыл соединение с этой БД, удалил строчку X и закрыл соединение. Первый юзер, заканчивает редактирование своей (локальной) строчки X и передаёт изменения на сервер БД, но строчка X уже удалена вторым юзером.... получается проблема!!!
Подпбные проблемы могут возникнуть и при работе напрямую с БД, без локальной копии БД (DataSet)

Вопрос: как управлять подобного рода ситуациями, какие средства предоставляет Framework 2.0?  

Это сообщение отредактировал(а) albert21 - 27.4.2006, 15:13
--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939
PM MAIL   Вверх
kulibin
Дата 28.4.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

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



начинаю токо шарп осваивать. но это был первый очень сурьёзно напрягавший меня вопрос. я не начал работать с нетом, пока не получил на него ответ. 
при обновлении записей метод объекта комманд executenonquery возвращает количество обновлённых строк. т.е. если он вернёт 1 - то всё ок. 
если нужно убедиться в том, что эту строку никто не отредактировал до вас - в клаус where включаем исходные значения всех полей. 
ну и для вставки новых записей применяются возвращаемые значения в скл-строке, аут-параметры, select чёто-там скоуп какой-то smile - не помню. это есть в справке по фреймворку - см. комманд.
вобщем в принципе вроде не очень серьёзная проблема. по крайней мере теоретически. на практике не проверял пока.
сумбурно я рассказал smile. спрашивайте если чего не понятно. если не найдутся желающие ответить с более светлыми головами - поищу примеры кода. 
PM MAIL WWW ICQ   Вверх
albert21
Дата 29.4.2006, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я об этом как раз и читал! Но ещё не дочитал ещё... smile
Цитата

 поищу примеры кода.


Если что-то будет, выложи пожалуйста 
--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939
PM MAIL   Вверх
Softaz
Дата 7.6.2006, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


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

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



Сделай поле с TimeStamp.

1. Читаешь.
2. При обновлении (до него) сравниваешь. Если одинаковы, то гуд. 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
vespa
Дата 1.6.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Сделай поле с TimeStamp.


Имеется в виду, что в исходной таблице нужно завести отдельное поле с таким типом (timestamp) или это системная переменнная, к которой можно получить доступ?
PM MAIL   Вверх
lankin
Дата 13.6.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Softaz @ 7.6.2006,  00:01)
Сделай поле с TimeStamp.

1. Читаешь.
2. При обновлении (до него) сравниваешь. Если одинаковы, то гуд.

а если в обновленной базе 5000 строк с фотографиями? Он там пожизненно повиснет на ней. И при этом еще сотня пользователей стучаться к серверу в то же время...
PM MAIL   Вверх
darkness
Дата 1.7.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Softaz, 
Цитата

Сделай поле с TimeStamp.
1. Читаешь.
2. При обновлении (до него) сравниваешь. Если одинаковы, то гуд. 


предполжим юзер правил одну запись капитально - пол-дня, потом при нажатии Save Changes ему прога выдаёт что тот TimeStamp который у него есть уже не соотвествует тому, который в базе и поэтому изменения не могут быть сохранены в базе. юзер огорчится... 
--------------------
Вина каких стран Вы предпочитаете в это время суток?     (Булгаков. "Мастер и Маргарита") 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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