Нотификация о изменении данных в MS SQL 2000

Тема в разделе "SQL", создана пользователем Barmutik, 16 авг 2004.

  1. Barmutik

    Barmutik Гость

    Подскажите реализуем ли следующий механизм:

    Я хочу что бы моя программа клиент узнавала об изменениях в какой-то конкретной таблице на сервере. Например в таблицу добавилась запись и клиент об этом узнал и произвёл требуемые ему действия.

    Понятно что можно раз в интервал сканить таблицу .. но это не вариант ...
     
  2. ????

    ???? Гость

    триггер на инсерт?
     
  3. Pete

    Pete Гость

    Одним триггером тут не обойдешься, нужно алерт выдавать, вопрос в том как... Лучше конечно вообще такого избегать по возможности (нотификации клиентов и прочее)
     
  4. Barmutik

    Barmutik Гость

    Что тригер то понятно .. вопрос как оповестить клиента .. такая возможность реализована в Interbase ... ну понятно что её сами борляндовцы писали ... но как сделать это в MS SQL Server 2000 ?

    Единственное что мне пока пришло в голову так это из тригера вызывать мой Com-объект а из него потом уже нотифицировать клиентов своими средствами.. но какой-то не правильный путь как мне кажется .. может есть что-то более правильное ?

    Что избегать оно конечно может и лучше .. но а всё таки ? Задача потенциально требует извещения клиентов...
     
  5. ????

    ???? Гость

    Barmutik
    а что смущает? пользуйся тогда рассылкой мэйлов :)
     
  6. Barmutik

    Barmutik Гость

    Да в принципе ничего ... просто думалсь что может есть какой более правильный способ клиенту сказать...

    Просто так надо опять же делать менеджер соединений.. который будет искать своих активных клиентов и им потом рассылать что данные изменились ... мне просто казалось что проблема достаточно банальна и явно же её люди нераз решали и возможно есть более красивое решение.

    Тогда вопрос до кучи:

    Можно ли у MS SQL сервера узнать список активных клиентов для конкретной базы? В смысле имена или IP адреса машин откуда они подключились ?
     
  7. ????

    ???? Гость

    Barmutik
    А как же без этого? Должно быть точно. Я не могу проверить - у меня Оракл, но должно быть.
    Вешай триггер на логон из которого запускается твой КОМ и бомбит определенную машину, пока приложение не скажет ему хватит ;)
    в MSSQL есть Microsoft Notification Services - что за звери - не знаю, но в MSDN'е описаны. может их тоже можнго применить?
     
  8. Гость

    Можно попробовать в конце триггера RAISERROR с низким уровнем значимости Severity Levels от 0 до 19, а в проге ловить Exception. Сам не пробовал,но как вариант.
     
Загрузка...

Поделиться этой страницей