Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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-ка




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.015 c
1-42791           alexts                2002-01-29 19:34  2002.02.14  
Atlon


1-42783           Zer0                  2002-01-17 18:58  2002.02.14  
Хелп!!!


3-42648           Eraser                2002-01-17 11:21  2002.02.14  
Изменение конкретной строки


14-42856          nikols                2001-12-26 15:34  2002.02.14  
Приглашаем поговорить про CORBA и EJB.


3-42644           Hawk2                 2002-01-16 17:14  2002.02.14  
Преобразование типов.