2

目前我对 REST(通过 clr/assembly)和 SOAP(通过基于 sp_OA 的存储过程)有很好的解决方案,但 XML-RPC 仍然是直接从 SQL Server T-SQL 代码访问的问题。

请告知为此目的存在哪些变体。

我需要避开应用层,因为所有逻辑都已经在数据库内的存储过程中,只需要提供记录集。

4

1 回答 1

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 中的一种方法。

请参阅: http ://social.msdn.microsoft.com/forums/en-US/transactsql/thread/eac9c027-db71-48ae-872d-381359d7fb51/

于 2012-07-30T03:29:31.720 回答