Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];
ВнизSQL Server Найти похожие ветки
← →
Alex_Sudakov (2002-01-19 13:29) [0]Господа, подскажите, как из SQL сервера послать виндовое (а"ля WM_...) сообщение всем подключенным клиентам? Очень не хочется писать свой СОМ сервер...
← →
Иван Шихалев (2002-01-19 21:46) [1]Никак
← →
GorA (2002-01-21 03:14) [2]зачем так категорично?
ведь есть возможность в хранимых процедурах использовать внешние модули. в эту сторону и копай.
удачи.
← →
KSergey (2002-01-21 08:40) [3]>ведь есть возможность в хранимых процедурах использовать внешние модули. в эту сторону и копай.
И толку?
Но во-первых: что за SQL-сервер?
Если иметь в виду MS SQL, то, конечно, внешние модули там есть, но они-то ведь на сервере работают! Получается, чтобы что-либо из них послать клиенту, нужно таки какой-то сетевой обмен городить. Т.е. никакими WM_ тут не отделаешься. Хотя, конечно, в принципе как вариант - это пройдет.
Рискну предложить другой вариант: запустить поток (ну или еще как-нибудь), в котором периодически дергать какой-нибудь флаг на сервере (таблицу или еще что-то), в котором, как серверу понадобиться известить клиентов, взведется какое-либо свойство.
← →
Юрий Жуков (2002-01-21 09:14) [4]Я думаю прийдется изменить автору совй вопрос на "Как послать сообщение из SQL server клиентам?"
IB см IBEvents
ORACLE - см Alert and Pipe
MSSQL - тут недавно пробегал ответ с использованием DLL
...
← →
Iluxa (2002-01-21 11:06) [5](Про MSSQL) Напрямую никак, но можно написать COM-сервер, посылающий броадкастные сообщения по сети (напр. по UDP), зарегистрировать его на тачке с MSSQL (regsvr32 server_name.dll) и вызывать его методы из MS SQL (семейство системных хранимых процедур sp_OA...). На клиентских местах устанавливаешь простенький сервер UDP (предварительно написанный тобой же :), транслирующий полученные сообщения в сообщения мастдая (протокол сам разрабоитаешь). У меня подобная дребедень (за исключением вышеупомянутого транслятора - нам не надо юзать виндовые сообщения) работает уже давно и оповещает тетенек о поступивших заказах с Интренет-магазина ( http://www.pregrad.net/). Благодаря сей возможности MSSQL можно практически неограниченно расширять его функциональность. У нас туда много всего напихано. Если что пиши - вышлю исходники.
← →
Praco (2002-01-21 11:23) [6]2Iluxa А зечем COM? Можно внешнюю хранимую процедуру.
← →
Snake1967 (2002-01-21 11:31) [7]Мне пришлось сделать в своей системе 2 варианта:
1) с помощью упомянутого выше вызова оформить стандартное сетевое оповещение типа:
select @scmd="net send Natalie Process finished!"
exec master..xp_cmdshell @scmd, NO_OUTPUT
Понятно, что такое сообщение (в буквальном смысле) можно только
прочитать.
2) для запуска с SQL-сервером других модулей и приложений написал:
- CORBA-объект (работает на другом компе в сети), который запускает объект с локального хоста или что-либо делает сам.
- CORBA-клиент к этому объекту, который вызывается SQL-сервером. Механизм вызова - тоже через exec master..xp_cmdshell , только вызывается CORBA-клиент.
Эта парочка не только передает сообщения в другие проги, но и позволяет распределенно исполнить бизнес-логику с помощью синхронных вызовов.
Есть, на мой взгляд, очень правильный способ решения этой задачи - написать свою extended stored prоcedure (которая может использовать любой транспортный механизм: CORBA, COM, сокеты, почту и т.п.). Однако, лень-матушка...
← →
Delirium (2002-01-21 12:20) [8]У меня есть такая dll-ка
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c