![]() |
|
Модераторы: gambit |
![]()
|
|
| albert21 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 1 Всего: 3 |
начинаю токо шарп осваивать. но это был первый очень сурьёзно напрягавший меня вопрос. я не начал работать с нетом, пока не получил на него ответ.
при обновлении записей метод объекта комманд executenonquery возвращает количество обновлённых строк. т.е. если он вернёт 1 - то всё ок. если нужно убедиться в том, что эту строку никто не отредактировал до вас - в клаус where включаем исходные значения всех полей. ну и для вставки новых записей применяются возвращаемые значения в скл-строке, аут-параметры, select чёто-там скоуп какой-то вобщем в принципе вроде не очень серьёзная проблема. по крайней мере теоретически. на практике не проверял пока. сумбурно я рассказал |
|||
|
||||
| albert21 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
Я об этом как раз и читал! Но ещё не дочитал ещё...
Если что-то будет, выложи пожалуйста --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
|||
|
||||
| Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 4 Всего: 16 |
Сделай поле с TimeStamp.
1. Читаешь. 2. При обновлении (до него) сравниваешь. Если одинаковы, то гуд. -------------------- Разочарованный в .NET |
|||
|
||||
| vespa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 20.3.2007 Репутация: нет Всего: нет |
Имеется в виду, что в исходной таблице нужно завести отдельное поле с таким типом (timestamp) или это системная переменнная, к которой можно получить доступ? |
|||
|
||||
| lankin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 377 Регистрация: 13.12.2006 Репутация: нет Всего: нет |
а если в обновленной базе 5000 строк с фотографиями? Он там пожизненно повиснет на ней. И при этом еще сотня пользователей стучаться к серверу в то же время... |
|||
|
||||
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
Softaz,
предполжим юзер правил одну запись капитально - пол-дня, потом при нажатии Save Changes ему прога выдаёт что тот TimeStamp который у него есть уже не соотвествует тому, который в базе и поэтому изменения не могут быть сохранены в базе. юзер огорчится... --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |