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

Откуда:
Сообщений: 151
Добрый день.
направьте, пожалуйста...
БД MS SQL 2005, но возможен переход на 2008
задача. текст запроса формируется на стороне сервера. далее должен отправлятся какому-то внешнему приложению, которое выполняет запрос и возвращает результаты (выполгение средствами сервера не всегда приемлемо ибо запрос может быть не только к MSSQL но и к Oracle).
подскажите как можно с сервера выполнить какие либо внешни телодвижения...

- notification service? - смущает что его на сколько я заню нет уже в 2008 версии...
- extended store procedure (dll?) в 2008 поддержка будет??
- cmd_shell - как передавать параметры?
- ... что нибудь другое?

Спасибо!
22 дек 09, 15:36    [8102583]     Ответить | Цитировать Сообщить модератору
 Re: запуск внешнией программы  [new]
iliyev
Member

Откуда: Лондон
Сообщений: 152
Referee,

На "клиенте" ставится приложение которое читает команды из базы и перенаправляет их на машины-исполнители (drones, blades)
Они информацию отрабативают и посилают или "клиенту" или записывают в целевую базу
22 дек 09, 16:16    [8102881]     Ответить | Цитировать Сообщить модератору
 Re: запуск внешнией программы  [new]
ura
Member [заблокирован]

Откуда: Киев
Сообщений: 932
Вполне можно делать на стороне сервера. См. Linked Server, OPENROWSET.
Если что-то совсем уж экзотическое - можно CLR наваять.
22 дек 09, 16:31    [8103021]     Ответить | Цитировать Сообщить модератору
 Re: запуск внешнией программы  [new]
Referee
Member

Откуда:
Сообщений: 151
iliyev,

вопрос собственно в том то и есть как при возниконовении какоголибо события (путь это будет запуст хранимой процедуры) на БД запустить сторонее внешнее приложение? если просто читать из БД команды на выполнение то с какой частотой? хотелось бы вообще избавится от подобного рода запросов...
22 дек 09, 16:31    [8103024]     Ответить | Цитировать Сообщить модератору
 Re: запуск внешнией программы  [new]
Referee
Member

Откуда:
Сообщений: 151
ura,

linked server не во всех ситуациях прокатит - некоторые запросы выполняются на oracle...

CLR - это чтото типа extended stored procedure только на .net?
22 дек 09, 16:33    [8103042]     Ответить | Цитировать Сообщить модератору
 Re: запуск внешнией программы  [new]
ura
Member [заблокирован]

Откуда: Киев
Сообщений: 932
Referee

linked server не во всех ситуациях прокатит - некоторые запросы выполняются на oracle...
linked server - это не обязательно MSSQL, oracle вполне тоже может быть.

Referee
CLR - это чтото типа extended stored procedure только на .net?

да, что-то типа того)
22 дек 09, 16:39    [8103076]     Ответить | Цитировать Сообщить модератору
 Re: запуск внешнией программы  [new]
iliyev
Member

Откуда: Лондон
Сообщений: 152
Referee
iliyev,

вопрос собственно в том то и есть как при возниконовении какоголибо события (путь это будет запуст хранимой процедуры) на БД запустить сторонее внешнее приложение? если просто читать из БД команды на выполнение то с какой частотой? хотелось бы вообще избавится от подобного рода запросов...


Все зависит от допустимой задержки.
У нас на одном проекте "рабочие" сами создавались (виртуальные) если много задач, "бригадир" распределял задачи.
Не совсем понял какое собитие будет отрабативатся. Если Вы хотите после каждого запуска конкретной (или абстрактной) процедуры запускать обработчик данных то начните с лога событий (можно трейс в таблицу заливать). Потом работаыте с етой таблицей через "бригадира". Он отсилает задачи на "рабочих". Там простой код. На любом языке можно реализовать.
22 дек 09, 16:41    [8103104]     Ответить | Цитировать Сообщить модератору
 Re: запуск внешнией программы  [new]
Referee
Member

Откуда:
Сообщений: 151
iliyev,

хочится чтобы клиент (в вашем случае "бригадир") не обращался за задачами к серверу... но чтобы сервер сам при постановке задачи сообщил об этом клиенту..
23 дек 09, 10:39    [8105549]     Ответить | Цитировать Сообщить модератору
 Re: запуск внешнией программы  [new]
iliyev
Member

Откуда: Лондон
Сообщений: 152
Почитайте про синхронную и асинхронную нотифицацию.
База данных не может сама уведомлять. Нет таких команд в cтандартах ANSI SQL.
Все что навешано ето за пределами хранения и обработки данних.
23 дек 09, 15:12    [8108000]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить