在 SQL Server 的存储过程中调用 Web 服务
一个老朋友计划开发一个应用,基于 .NET 和 Socket,但需要在存储过程中调用 Web 服务。
在这篇文章中我们将分享这个应用的经验,讲述如何在存储过程中调用 Web 服务,并传递参数。
Step 1
首先我们在 Visual Studio 中创建一个 Web 服务项目:
Step 2
接下来在服务中添加我们需要的方法,在这里我们创建 6 个方法,分别是 Greet (string Param1)
, HelloWord()
, Add
, subtract
, 和 Divide
(Num1 int, int num2)
Step 3
然后开始创建存储过程,在我所有文章中都是使用 AdventureWorks 数据库,这是我自己的一些测试数据项目。
Step 4
接下来在 IIS 中发布 Web 服务
Step 5
然后开始在存储过程中编码访问 Web 服务
Step 6
在创建过程中,我们传递一个参数,这是waitingSaludar()方法的参数,如果他们想使用其他的方法,应该创建另一个参数,正如我上面提到的其他方法,需要两个整型的参数。
在使用 sp_OAMethod 存储过程时有一些事情是非常重要的,该方法等待 POST 和 GET 方法,默认是通过 POST 方法,但如果使用这个方法我们将无法获取到 XML 输出,因此这里必须用 GET 方法。
Step 7
接下来我们现在浏览器上测试 Web 服务,打开网址 http://localhost/WebServices/Service1.asmx ,这将显示 Web 服务提供的所有方法:
Step 8
选择我们想调用的方法,然后输入参数后就可调用
Step 9
做完这个后会打开另外一个页面,包含 XML 中的信息和参数
Step 10
然后我们执行刚创建的存储过程
Step 11
调用后会得到如下输出
Results
下面就是结果,跟在浏览器上调用的一样。