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

Откуда: ☭
Сообщений: 72978
Или нужно обязательно clr-процедуру писать?

PS: sp_OACreate 'MSXML2.XMLHTTP' вообще не вариант.
29 сен 16, 13:38    [19723513]     Ответить | Цитировать Сообщить модератору
 Re: Умеет ли MSSQL 2014 делать SOAP-запросы встроенными средствами?  [new]
aleks2
Guest
Если париться за массовую загрузку - ваще soap не вариант.

1. Клеим конверты на сервере
+
-- 1. Logon
set @localstep = @localstep + 1;
if @step = @localstep begin

    set @id = N'login';

	select [server] = replace( [server], '#server#', @server )
         , [Action] 
         , [schema] 
         , [file]
         , envelope = replace( replace( envelope 
                                     , N'#login#'
                                     , ( select value from dbo.aleanData where code = 'login') 
                                     ) 
                            , N'#password#'
                            , ( select value from dbo.aleanData where code = 'password') 
                            )
         , [convertXML]
         , IgnoreDuplicateKeys
      from dbo.aleanSoap with(nolock)
      where code = @id 
      ;

  return 0;

end;

declare @SessionID nvarchar(256);
select top(1) @SessionID = [SessionID] from tempdb.dbo.alean_login where ret = N'lrSuccess' order by [loginID] desc;

if @SessionID is null begin
    raiserror( 'aleanGetLoadData: Авторизация не прошла.', 16, 1 );
    return -1;
end;

--2. GetAvailableHotelList
set @localstep = @localstep + 1;
if @step = @localstep begin

    set @id = N'GetAvailableHotelList';

	select [server] = replace( [server], '#server#', @server )
         , [Action], [schema], [file]
         , envelope = replace( envelope, N'#SessionID#', @SessionID )
         , [convertXML], IgnoreDuplicateKeys
      from dbo.aleanSoap with(nolock)
      where code = @id;

  return 0;

end;


2. Херачим конверты скриптом на сервер SOAP
+
function Execute-SOAPRequest-ToFile 
( 
        [String] $URL,
        [String] $Action,
        [Xml]    $SOAPRequest,
        [String] $File,
        [int]    $Timeout = 60000

) 
{ 
        $soapWebRequest = [System.Net.WebRequest]::Create($URL)
        $soapWebRequest.Timeout = $Timeout
        $soapWebRequest.Headers.Add("SOAPAction" , $Action ) 

        $soapWebRequest.ContentType = 'text/xml;charset=utf-8' 
        $soapWebRequest.Accept      = $soapWebRequest.ContentType 
        $soapWebRequest.Method      = 'POST' 
        
        $requestStream = $soapWebRequest.GetRequestStream() 
        $SOAPRequest.Save($requestStream) 
        $requestStream.Close() 
        
        $responseStream = $soapWebRequest.GetResponse().GetResponseStream() 
        
        $fileStream =  new-object System.IO.FileStream( $File, [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write )
        $responseStream.CopyTo($fileStream)
        $responseStream.Close()
        $fileStream.Close()

        return $true 
} 


3. Грузим в базу
        # грузим в базу
        $xmlbulkloader.Execute( $schema, $file )
29 сен 16, 15:09    [19724090]     Ответить | Цитировать Сообщить модератору
 Re: Умеет ли MSSQL 2014 делать SOAP-запросы встроенными средствами?  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72978
aleks2,

то есть смысл в том, чтобы отправку запросов переложить с mssql на сторонний процесс, который их отработает и зальет ответы в mssql?

а скрипты на чем написаны? не узнаю синтаксис.
29 сен 16, 15:27    [19724182]     Ответить | Цитировать Сообщить модератору
 Re: Умеет ли MSSQL 2014 делать SOAP-запросы встроенными средствами?  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72978
и кстати не понял этой фразы
автор
Если париться за массовую загрузку - ваще soap не вариант.
что значит "не вариант"? в итоге все равно soap - запрос отправляется.
29 сен 16, 15:29    [19724207]     Ответить | Цитировать Сообщить модератору
 Re: Умеет ли MSSQL 2014 делать SOAP-запросы встроенными средствами?  [new]
aleks2
Guest
Antonariy
aleks2,

то есть смысл в том, чтобы отправку запросов переложить с mssql на сторонний процесс, который их отработает и зальет ответы в mssql?

а скрипты на чем написаны? не узнаю синтаксис.

Узри великий и ужасный PowerShell.

Antonariy
и кстати не понял этой фразы
автор
Если париться за массовую загрузку - ваще soap не вариант.
что значит "не вариант"? в итоге все равно soap - запрос отправляется.

Запрос SOAP - это запрос HTTP -ответ в XML и ничего более.
Просто клиент SOAP его для тебя частично разбирает.
29 сен 16, 15:44    [19724323]     Ответить | Цитировать Сообщить модератору
 Re: Умеет ли MSSQL 2014 делать SOAP-запросы встроенными средствами?  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72978
aleks2
Antonariy
aleks2,

то есть смысл в том, чтобы отправку запросов переложить с mssql на сторонний процесс, который их отработает и зальет ответы в mssql?

а скрипты на чем написаны? не узнаю синтаксис.

Узри великий и ужасный PowerShell.

Antonariy
и кстати не понял этой фразы
пропущено...
что значит "не вариант"? в итоге все равно soap - запрос отправляется.

Запрос SOAP - это запрос HTTP -ответ в XML и ничего более.
Просто клиент SOAP его для тебя частично разбирает.
я в курсе, кэп.

я не в курсе, почему "не вариант".

и $schema - это wsdl или какая-то другая схема?
29 сен 16, 15:52    [19724380]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить