• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
June's New World
知识和经验都是一点点积累的!现在努力也不晚,June加油!
博客园    首页    新随笔    联系   管理    订阅  订阅
存储过程中调用webservice

如何在存储过程中调用webservice

找了很长时间才找到解决方法,留下以下笔记。

存储过程中调用webservice其实是在数据库中利用系统函数调用OLE.

1.查找webservice api 可得到MSSOAP.SoapClient。

2.查找API 接口可得到mssoapinit 方法。

3.查找数据库中执行OLE函数sp_OACreate、sp_OAMethod、sp_OADestroy。

到这里基本就完成了,下面是完整的存储过程。

--set SoapClient to be work
sp_configure 'Ole Automation Procedures',1 
reconfigure 
go 


DECLARE @object int
DECLARE @hrint
DECLARE @result int
DECLARE @objectResult nvarchar(255)

--sp_OACreate see more. http://msdn.microsoft.com/en-in/library/ms189763.aspx
EXEC @hr= sp_OACreate 'MSSOAP.SoapClient', @object OUT
EXEC @hr= sp_OAMethod @object, 'mssoapinit', null, 'http://localhost:52607/WebService1.asmx?WSDL','WebService1'
EXEC @hr= sp_OAMethod @object,'HelloWorld',@objectResult OUT

print @hr

IF @hr<>0
BEGIN
    EXEC sp_OAGetErrorInfo @object 
    print @object
END
ELSE
BEGIN
    print @objectResult
end
EXEC @hr= sp_OADestroy @object
GO

 

转自http://www.cnblogs.com/chuifeng/archive/2011/03/24/1994095.html

posted on 2012-08-04 23:08  冬雨在路上  阅读(524)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3