Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как реализовать обновление в многопользовательской среде  [new]
romanich
Member

Откуда: Ачинск
Сообщений: 201
все операции вставки, редактирования, удаления записей делаю через ХП. как делать обновление записей у других пользователей, как избежать коллизий?
29 окт 05, 15:58    [2019589]     Ответить | Цитировать Сообщить модератору
 Re: как реализовать обновление в многопользовательской среде  [new]
ChA
Member

Откуда: Москва
Сообщений: 11125
Расшифруйте вопрос
romanich
как делать обновление записей у других пользователей, как избежать коллизий?
или ждите телепата...
29 окт 05, 16:21    [2019631]     Ответить | Цитировать Сообщить модератору
 Re: как реализовать обновление в многопользовательской среде  [new]
romanich
Member

Откуда: Ачинск
Сообщений: 201
Простите.
Как реализовать отображение обновленных данных в таблицах у других пользователей? Стоит ли это делать?
29 окт 05, 17:36    [2019700]     Ответить | Цитировать Сообщить модератору
 Re: как реализовать обновление в многопользовательской среде  [new]
ChA
Member

Откуда: Москва
Сообщений: 11125
romanich
Как реализовать отображение обновленных данных в таблицах у других пользователей? Стоит ли это делать?
Все равно непонятно, но рискну предположить, что речь идет о принудительном обновлении данных клиентов, если эти данные изменились. Как Вы сами спросили, есть ли в этом необходимость ? На этот вопрос никто, кроме Вас, ответить не сможет, так как это, в значительной мере, диктуется предметной областью, о которой ничего неизвестно.
Если оно необходимо, то есть 2 основных способа. Первый - обновление инициируется клиентом, второй - сервером.
В первом случае, клиент сам периодически опрашивает сервер, а не произошли ли изменения пользуемых им данных. Простейший механизм - это заведение полей типа rowversion или timestamp в аудитируемой таблице. На клиенте запоминаете их последнее значение, а при опросе проверяете, не появилось ли записей с большим значением. Если да, то это может быть поводом для обновления отображаемых данных.
Во втором случае, сервер, посредством, например, вызова специальной процедуры в триггере аудитируемой таблицы, посылает по сети широковещательное сообщение всем клиентам, что такие-то данные изменились. Клиент, получивший такое сообщение, обрабатывает его, и если оно актуально для него, то оно также может являться поводом для обновления отображаемых им данных. Более сложный способ, рассылать сообщение только тем, кто зарегистрирован(подписался на уведомление).
И, наконец, в большинстве случаев, достаточно иметь кнопку обновления экрана(как в browser, например) и клиент сам решает, когда ему обновить отображаемые данные.

P.S. Навскидку
29 окт 05, 18:10    [2019726]     Ответить | Цитировать Сообщить модератору
 Re: как реализовать обновление в многопользовательской среде  [new]
romanich
Member

Откуда: Ачинск
Сообщений: 201
Спасибо за "пищу для ума"
29 окт 05, 19:38    [2019812]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить