Войти

Показать полную графическую версию : *SQL* | Как получить данные HTTP->SQL


pva
09-09-2009, 18:08
Здравствуйте всем! Подскажите, пожалуйста. Есть SQL-сервер MS SQL 2005, и CGI-скрипт на удалённом сервере в интернете, который получает параметр и возвращает результат в XML. Как можно сделать так, чтобы получить этот результат хранимой процедурой на сервере SQL?

Delirium
10-09-2009, 00:49
Не совсем понял суть вопроса. pva, у тебя всегда такие вопросы заковыристые :)
Что значит "хранимой процедурой"? Процедура же выполняет какие то действия.... Опиши подробней, с примерами :)

pva
10-09-2009, 07:19
Пример: пусть есть какой-то информер в интернете, например http://informer.gismeteo.ru/get_data?value=100 (на самом деле у меня другой, это для конспирации). При запросе он возвращает какие-то данные в виде XML, известной структуры. Есть клиентская часть программы, которая крутится на компьютере, без интернета (но с доступом к серверу SQL). Глобальная задача: при выполнении одной из хранимых процедур (stored procedure) на сервере SQL, инициированных клиентом, выполнить запрос к вэб-верверу и использовать в этой процедуре возвращёные данные.
Процедура же выполняет какие то действия.... »
Содержимое процедуры - на моё усмотрение, главное чтобы строчку взвращала (полученную по http)

// пример получения данных по http, но на js, а надо на SQL
function retrieve_http_result(arg)
{
var xml_req = WScript.CreateObject("Msxml2.XMLHTTP");
xml_req.Open("GET", "http://informer.gismeteo.ru/get_data?value=" + arg, false);
xml_req.Send();
return xml_req.ResponseXML;
}

функция master..xp_cmdshell на сервере SQL отключена, а так бы сделал

declare @result_strs table(line varchar(255));
insert into @result_strs master..xp_cmdshell("cscript c:\path\retrieve_http_result.js " + arg_str);
-- обработка @result_strs


----
Перефразирую так (может понятней получится): как из SQL-сервера пользоваться SOAP-сервером (или ему подобным)

Delirium
10-09-2009, 09:04
http://blogs.msdn.com/alexejs/archive/2009/07/25/sql-server-native-web-services.aspx ?

pva
11-09-2009, 21:49
я так понимаю эта штука открывает доступ к sql-серверу через интерфейс вэб, а мне надо как бы с другой стороны, отправить запрос на вэб-сервер и получить результат в sql-сервере
алгоритм такой:
1. оператор ПК нажал кнопку
2. на SQL запустилась процедура обработки нажатия
3. на http:// ушёл запрос внешних данных
4. с http:// вернулся ответ в виде xml
5. это подхватила процедура и перевела в своё представление и сделала кучу дополнительной работы с базой
6. оператор ПК увидел результат
---
проблема в том, что эту обработку надо вклинить в чужой софт. А влезть я могу только в процедуру обработки в базе




© OSzone.net 2001-2012