在软件开发中,有时需要在数据库层调用外部服务,例如WebServices。本文将分享如何从存储过程中调用WebServices,并传递参数的经验,以供其他程序员学习。
首先,需要在Visual Studio中创建一个WebServices项目。这是调用外部服务的起点。
接下来,要定义服务中使用的方法。以案例为例,定义了6个方法:
这些方法将构成WebServices的核心功能。
然后,要创建一个存储过程,它将包含调用刚刚创建的WebServices的所有代码。在所有文章中,使用的数据库是AdventureWorks,这是SQL Server提供的基础测试数据。
接着,需要将WebServices发布到IIS Web Server上。这是使服务可以在网络中被访问的关键步骤。
在存储过程中,需要编写代码来调用WebServices。这涉及到将数据传递给WebServices。
在创建存储过程时,需要传递一个参数,这是等待Greet()方法的参数。如果需要使用其他方法,则应该创建另一个参数,因为如上所述,其他方法期望的是两个整数类型的参数。
在使用sp_OAMethod存储过程时,非常重要的一点是它等待POST或GET方法,默认几乎总是发送POST,但如果发送这个方法,无法显示由WebService生成的XML阅读,因此必须使用GET方法。
接下来,可以通过浏览器测试WebService。在浏览器地址栏中输入发布WebService的IIS地址:
http://localhost/WebServices/Service1.asmx
在这里,可以查看在WebService中创建的所有方法。
选择想要在存储过程中使用的方法,例如Greet()。然后,输入想要传递给WebService的参数,之后点击Invoke。
之后,浏览器会打开另一个页面,显示包含XML和输入的参数的信息。
接下来,执行刚刚创建的存储过程,以调用WebService。
运行存储过程并发送参数后,将得到与通过浏览器运行时相同的结果。