Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / События при обновлении данных / 7 сообщений из 7, страница 1 из 1
27.04.2001, 18:32
    #32004973
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События при обновлении данных
Хотелось бы узнать как клиент подключенный к базе может получить сообщение об изменениях в данных. Вроде бы как-то это можно сделать через ADO. Или есть другой способ?
Кто знает подскажите пожалуйста!
...
Рейтинг: 0 / 0
27.04.2001, 18:45
    #32004975
Garya
Garya Привилегированный пользователь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События при обновлении данных
В компонентах ADO используется тривиальная проверка @@Identity таблицы, с которой работает пользователь. Если @@Identity изменился с момента последнего обращения к таблице, значит кто-то другой успел попытаться добавить запись. Эта проверка слишком малоинформативна, и зачастую ADO-шный упрошенный метод приводит к совершенно ни к селу ни к городу выскакивающим предупреждениям о том, что ВОЗМОЖНО данные изменены другим пользователем в то время, как на самом деле другой пользователь шевелил записи, которые тебя не интересуют. В то же время есть вероятность, что другой пользователь сказал Update или Delete, а данная система "диагностики" пропустит это событие мимо ушей, хотя данные модифицировались как раз те, которые высвечены у тебя на экране.
Для того, чтобы отлавливать изменения записей другими пользователями используется специально для этого созданный тип данных Timestamp. Вот только с сообщениями будет напряженка. Не думай, что при модификации данных другим пользователем ты вдруг ни с того ни с сего получишь сообщение от SQL-сервера о том, что данные модифицированы другим пользователем. Язык запросов (T-SQL) работает так, что пока ты не пошлешь запрос, ответ не получишь.
...
Рейтинг: 0 / 0
04.05.2001, 16:56
    #32005187
Dankov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События при обновлении данных
Проблему в подавляющем количестве случаев решают через периодической обновление. Хотя события тоже можно сделать. Есть 4 пути (как минимум):
1. В триггере raiserror со специальным номером ошибки и алерт, срабатывающий на ошибку с этим номером.
2. В триггере вызов xp, тобой написанной. Транспорт любой - полный полет фантазии.
3. В триггере вызов твоего рукописного ActiveX объекта через sp_OA..., тоже с полетом фантазии по транспорту.
4. В триггере посылка по мылу.

Все требует приложения ручек. Зато ничто не ограничивает. Где-то в инете попадалось готовое решение по теме 2 с сырцами, сделанное на дельфях. Поисчи.
...
Рейтинг: 0 / 0
14.05.2001, 11:47
    #32005581
Andr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События при обновлении данных
А можно поподробней как средствами SQL Server послать сообщение КОНКРЕТНОМУ пользователю
...
Рейтинг: 0 / 0
14.05.2001, 15:29
    #32005598
Garya
Garya Привилегированный пользователь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События при обновлении данных
Послать можно используя xp_sendmail или Net SEND. Для таких целей заводятся операторы. А больше никак. Пока не спросишь, ответа не получишь. На то Query (в абревиатуре SQL) и называется "запрос".
...
Рейтинг: 0 / 0
14.05.2001, 15:59
    #32005604
Andr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События при обновлении данных
Необходимо послать сообщение или ошибку конкретному пользователю по срабатыванию тригера (но не e-mail), что бы программа клиента обновила свои записи. RAISERROR посылает только тому, кто вызвал срабатывание триггера. Может можно подсунуть ей имя другого пользователя, вот только как?
...
Рейтинг: 0 / 0
14.05.2001, 16:49
    #32005613
События при обновлении данных
Надо настроить алерт(ы) на тот номер ошибки, котрую ты будешь райзить. Ну, а алерт привязывай к любым операторам с посылкой net send.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / События при обновлении данных / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]