目前我有很好的REST解决方案(通过clr / assembly)和SOAP(通过基于sp_OA的存储过程),但XML-RPC仍然是直接从SQL Server T-SQL代码访问的问题。
请告知为此目的存在哪些变体。
我需要避免使用应用层,因为所有逻辑都已存在于数据库内的存储过程中,并且只需要提供记录集。
答案 0 :(得分:0)
我使用xmlhttp COM对象从t-sql中的HTTP调用中使用了XML,类似于:
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open',
NULL, 'get',
'http://www.webservicex.com /stockquote.asmx?symbol=MSFT', 'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
然后可以通过传统的tsql方法粉碎@ResponseText中的xml。
这不是一种特别有效的方法;使用SSIS包或CLR集成很可能会产生更好的解决方案,但这是将其全部保存在t-sql中的一种方法。