分享
 
 
 

用SQLXML3把存储过程暴露为Web服务

王朝mssql·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

最新的技术是Web服务。现在出现在所有市场中的类似简单对象访问协议(SOAP)、Web服务描述语言(WSDL)、通用描述、发现和集成(UDDI)等术语的基本元素都是XML和Internet。

Web服务用于建立松散连接的应用程序并实现互操作性。松散连接的应用程序使你能重新配置、重新部署或重新定位它的实现而不影响相关的应用程序。互操作性涉及到建立能够在允许Web服务的任何平台上使用的应用程序。通过Web服务暴露SQL Server给予应用程序一个松散的连接接口,使你能够修改数据库的结构和位置而不影响应用程序。另外,Web服务使SQL Server能与更多的编程环境和平台交互操作。

为了达到互操作性,开发者需要在一套开放的工业标准和协议上建立Web服务。XML是这些标准中多数的基础,提供了不依赖平台的描述和数据表现。建立在XML上的SOAP提供了基于标准的向应用程序发送数据和从应用程序接收数据的途径,代表性的是使用HTTP。WSDL描述了位置、方法、参数和Web服务使用的数据类型。UDDI为注册Web服务或查找需要的其它Web服务的目录提供了一个接口。通过把这些标准技术和T-SQL编程组合在一起,你能把SQL Server存储过程实现为Web服务。

SQL Server 2000 Web Release 3(SQLXML 3.0)的焦点是Web服务(你能够通过链接http://microsoft.com/sql/default.asp下载SQLXML 3.0)。SQLXML 3.0使你能够从数据库中选择存储过程并从虚拟目录中选择XML模版,把它们暴露为Web服务的方法。因为你能够通过Web服务和传统方法(例如T-SQL EXEC语句、OLE DB、ADO和ODBC)调用存储过程,你可以最大化地重复使用这些组件。简单地说,SQLXML 3.0使你能把数据库编程中的专门技术扩展到Web服务中而不需要学习新的语言或工具。下面让我们看看怎样把存储过程转变为Web服务。

配置虚拟目录。把存储过程暴露为Web服务的第一步是从安装SQLXML 3.0产生的Configure IIS Support(配置IIS支持)菜单项中选择Microsoft IIS Virtual Directory Manager(微软IIS虚拟目录管理器)。要建立虚拟目录,从左边的树视图中选择Web服务器,接着展开该视图并点击默认的Web站点。右击右边面板中的任意区域,选择Context-》New-》Virtual Directory来显示一个New Virtual Directory Properties(新虚拟目录属性)对话框。在“安全和数据源”页面上,输入能够访问Northwind示例数据库的SQL Server登陆许可。注意你在“通用”页面上选择的目录的许可必须给你在“安全和数据源” 页面上为IIS配置的默认用户授权(请查看IIS文档寻找配置的详细信息)。为了避免许可的问题,为你的虚拟目录选择Inetpubwwwroot的一个子目录,IIS默认用户自动拥有访问Inetpubwwwroot下面数据的权限。下一步,在“设置”页面上,选择Allow POST选项,这样虚拟目录能够接受HTTP POST请求。点击“应用”。

配置虚拟名称。在配置虚拟目录后,点击New Virtual Directory Properties(新虚拟目录属性)对话框上的“虚拟名称”页面。从虚拟名称列表中选择新虚拟名称,为该虚拟名称选择一个名字,接着把它的类型设置为soap。列表1显示了把soap字符串作为虚拟名称的VBScript代码。给虚拟名称输入一个路径。该路径包含了当你把修改保存到根目录时从IIS虚拟目录管理器中输出的WSDL文件。我通常选择('.'),它选择相同的目录作为虚拟目录。你可以接收对话框中剩余字段的默认值。点击“保存”。当你保存虚拟名称时,SQLXML 3.0给你指定的虚拟名称目录写入两个文件,扩展名为.wsdl。其它的文件扩展名为.ssc,包含IIS虚拟目录管理器使用的存储过程的XML描述。现在你选择希望暴露作为Web服务方法的存储过程。在本文的例子中,我使用列表2中所示的OrdersForCustomer存储过程。这个存储过程返回指定客户ID(作为参数传递进的)的订单集合。进行下一步之前,你必须使用查询分析器(Query Analyzer)把这个存储过程安装在Northwind示例数据库中。

建立Web服务。在“新虚拟目录属性”对话框的“虚拟名称”页面上选择刚刚建立的虚拟名称,接着点击“配置”(Configure)。这样就显示了Soap虚拟名称配置对话框(图1所示)。在这个对话框中,选择你希望暴露作为Web服务方法的存储过程。为了选择一个存储过程,点击("..."),它建立你配置虚拟目录访问的一个数据库中可用的存储过程列表。不要选择包含FOR XML子句查询的存储过程。作为代替,你必须选择返回标准结果集合的存储过程。SQLXML 3.0期望存储过程返回输出参数或标准结果的结果集。接着该结果在中间层中被建立为XML。选择返回标准结果集的存储过程使所有可以用于Web服务或传统编程方法(例如T-SQL)的存储过程的灵活性最大化了。当你在中间层中建立XML查询结果,要小心避免SQLXML 3.0的限制(你可以查看SQLXML 3.0在线文档查看这些限制的详细信息)。你选择OrdersForCustomer存储过程后,点击“确定”(OK),接着点击Soap虚拟名称配置对话框的“保存”(Save)按钮。这样你就已经建立了第一个Web服务了。你可以使用任何文本编辑器检查为虚拟名称选择的目录中的WSDL。该WSDL文件包含余你选择的Web服务相对应的方法定义。

为了测试新建立的Web服务,使用列表1中显示的VBScript代码。该代码建立一个调用该Web服务的SOAP消息,接着使用XMLHTTP对象把该SOAP请求发送给Web服务。SOAP结果显示在一个消息框中。这个客户端简单演示了SOAP小心在VBScript和SQLXML 3.0之间的交换。但是,它也显示了现在存储过程调用可以通过在HTTP上使用SOAP跨平台交互操作,它们通过WSDL和SCC文件中的描述提供了到存储过程的松散连接。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有