在 SQL Server 的存储过程中调用 Web 服务

时间:2022-12-01 19:58:26

介绍

一个老朋友计划开发一个应用,基于 .NET 和 Socket,但需要在存储过程中调用 Web 服务。

在这篇文章中我们将分享这个应用的经验,讲述如何在存储过程中调用 Web 服务,并传递参数。

Step 1

首先我们在 Visual Studio 中创建一个 Web 服务项目:

在 SQL Server 的存储过程中调用 Web 服务

Step 2

接下来在服务中添加我们需要的方法,在这里我们创建 6 个方法,分别是 Greet (string Param1) ,HelloWord() , Addsubtract, 和 Divide (Num1 int, int num2)

在 SQL Server 的存储过程中调用 Web 服务

Step 3

然后开始创建存储过程,在我所有文章中都是使用 AdventureWorks 数据库,这是我自己的一些测试数据项目。

在 SQL Server 的存储过程中调用 Web 服务

Step 4

接下来在 IIS 中发布 Web 服务

在 SQL Server 的存储过程中调用 Web 服务

在 SQL Server 的存储过程中调用 Web 服务

Step 5

然后开始在存储过程中编码访问 Web 服务

在 SQL Server 的存储过程中调用 Web 服务

Step 6

在创建过程中,我们传递一个参数,这是waitingSaludar()方法的参数,如果他们想使用其他的方法,应该创建另一个参数,正如我上面提到的其他方法,需要两个整型的参数。

在使用 sp_OAMethod 存储过程时有一些事情是非常重要的,该方法等待 POST 和 GET 方法,默认是通过 POST 方法,但如果使用这个方法我们将无法获取到 XML 输出,因此这里必须用 GET 方法。

在 SQL Server 的存储过程中调用 Web 服务

Step 7

接下来我们现在浏览器上测试 Web 服务,打开网址 http://localhost/WebServices/Service1.asmx ,这将显示 Web 服务提供的所有方法:

在 SQL Server 的存储过程中调用 Web 服务

Step 8

选择我们想调用的方法,然后输入参数后就可调用

在 SQL Server 的存储过程中调用 Web 服务

Step 9

做完这个后会打开另外一个页面,包含 XML 中的信息和参数

在 SQL Server 的存储过程中调用 Web 服务

Step 10

然后我们执行刚创建的存储过程

在 SQL Server 的存储过程中调用 Web 服务

Step 11

调用后会得到如下输出

在 SQL Server 的存储过程中调用 Web 服务

Results

下面就是结果,跟在浏览器上调用的一样。

在 SQL Server 的存储过程中调用 Web 服务