更改服务器配置:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
sql代码: declare @ServiceUrl as varchar(1000)
declare @UrlAddress varchar(500)
--WebService地址:以http开头,结尾带斜杠,例如'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/'
set @UrlAddress = 'http://192.168.0.217/eosserver/GetDjLshWebServices.asmx/'
declare @FunName varchar(50)
--WebService中调用的方法名:例如'getMobileCodeInfo'
set @FunName = 'SP_GetDjLsh '
--以下参数对应WebService中2个参数的[参数名]
declare @P1 varchar(800),@P2 varchar(100)
set @P1 = 'DjName'
--set @P2 = 'Count'
declare @P1_Value varchar(100),@P2_Value varchar(100)
set @P1_Value = @DjName
--set @P2_Value = @Count
set @ServiceUrl = @UrlAddress + @FunName + '?' + @P1 + '=' + @P1_Value --+'&' + @P2 + '=' + @P2_Value
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
DECLARE @x XML
SELECT @x = REPLACE( @ResponseText , '<?xml version="1.0" encoding="utf-8"?>' , '' )
;WITH XMLNAMESPACES(DEFAULT 'http://tempuri.org/')
select @DjLsh= @x.value('data(int)[1]', 'varchar(30)')
Exec sp_OADestroy @Object
如果webservice 因 URL 意外地以“/GetVer”结束,请求格式无法识别。则在web.config中配置如下: <webServices>
<protocols>
<add name="HttpPost" />
<add name="HttpGet" />
</protocols>
</webServices>