王朝网络
分享
 
 
 

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [1]

王朝mssql·作者佚名  2006-01-08
宽屏版  字体: |||超大  

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes )

小气的神

2002-5-25

Article Type: Overview

难度等级:5/9

版本:4.16

当Web Services不仅作为一种新技术,而且也作为一种对现有技术的整合时;它开始影响一些领域的发展,特别是IBM,Microsoft这样的公司都认为:企业建立Web Services应用时,应当先从企业内部应用开始的,然后扩展到公用的Web Services上。所以两家公司的产品线都毫不迟疑的向改造和支持Web Services方向上迈进,象WebShpere、Tivoli、Lotus、Commerce Server、Biztalk Server这样的产品都不断地改进和提供对Web Services的支持。

Web Services的核心是XML技术,目前在数据库方面,IBM、Oracle和Microsoft都增强了各自基于XML的数据库产品;并且都采用类似的XML Extender的方式来处理XML和关系数据库之间的交换,这使得纯XML数据库支持者几乎绝望。相比起来Oracle的XDB是给人印象是最深刻的。Microsoft在发布SQL Server 2000时就已经开始支持XML了。之后发布的SQLXML 3.0更是对其的一个增强。不过当发现一个存储过程可以轻易转换成一个Web Services的方法时,我都不知该怎么评价SQLXML本身了。

由于发布SQL Server 2000时还没有Web Services,另外SQL Server 2000中内建的对XML的支持并非都遵循最新的W3C标准,所以SQLXML更象是一个补丁,不过有些特性是非常突出的:

1. 对Web Services (SOAP)的支持。

2. 使用HTTP访问SQL Server的多种方式。

3. 定义映射文件同时支持W3C标准的 annotated XSD Schemas和原来的annotated XDR Schemas

4. SQLXML 的dotNET支持,允许使用SQLXML Managed Classes在SQL Server 2000上存取XML数据

让我们逐一看看这些特性吧:

对Web Services 的支持

简单的说这个功能允许客户发出一个SOAP/HTTP请求给SQL Server 2000,请求执行SQL 2000上的某个存储过程、自定义函数和模板,而SQL Server能够给客户相应的结果(Response)。步骤上也很简单,基本是两步:

1. 首先定义一个存储过程、自定义函数

存储过程: sp_getEmployees

CREATE PROCEDURE sp_getEmployees

@EmployeeID int

AS

select * from Employees where EmployeeID = @EmployeeID

GO

自定义函数:Add 和 getemployeesByID

CREATE FUNCTION [Add] ( @a int , @b int )

RETURNS int AS

BEGIN

return ( @a + @b )

END

CREATE FUNCTION [getEmployeesByID] ( @EmployeeID int )

RETURNS table

AS

RETURN ( Select * from Employees Where EmployeeID = @EmployeeID )

保险一点,我们将在Query analyzer中测试一下我们的存储过程和自定义函数。

exec sp_getEmployees 1

SELECT * FROM [Northwind].[dbo].[getEmployeesByID](1)

SELECT [Northwind].[dbo].[Add](1,3)

2. 使用IIS Virtual Directory Management 建立Virtual Directory 和 Virtual Name 并且进行配置。

( 建立一个Norchwind 虚拟目录)

(设置该目录的虚拟名属性,新建一个名称(Name):WebGet ,类型(Type): soap )

(点击Configure键,出现配置页,输入方法名(method name),然后点击 … )

(出现存储过程和自定义函数的列表,选择后确定。sp表示存储过程,udf就是自定义函数了)

当我们选择SOAP的功能时,可以有另外的一个设置窗口出现,这个Configuration允许我们进行一些更详细的设置,主要是Row formatting和Output as选项,这些设置将有什么产生怎样不同的影响呢?从下面我们产生的Web Services的Proxy的代码可以看得清楚一些:

XML Objects方式可能是这样的:

public object[] sp_getEmployees(int EmployeeID) {

object[] results = this.Invoke("sp_getEmployees", new object[] {

EmployeeID});

return ((object[])(results[0]));

}

Dataset Objects是这样的代码:

public System.Data.DataSet getEmployeesByID(int EmployeeID) {

object[] results = this.Invoke("getEmployeesByID", new object[] {

EmployeeID});

return ((System.Data.DataSet)(results[0]));

}

然后我们在VS.NET环境下,输入Http://localhost/Northmind/WebGet?wsdl (有些奇怪的URL,不过它的确能工作),我们可以象其它Web Services一样使用了。这里省去具体的测试例子代码。

我们可以看到从一个存储过程甚至是自定义函数,都可以直接变成一个WebServices中的接口或方法,我想对于这个功能仍无法肯定的加以评论,不过它提供了一种方式,使得你可以使用XML的方式组织和访问你的数据,最重要的是这种方式支持SOAP/HTTP协议了。从而Database Server不再单纯的是一个数据层,所以应用构架上可能可以更加松散耦合,当然,单纯的使用SQLXML的这种技术将过于直接了,也许它目前更多的用在企业内部,无法相信你或我会把它直接放到Internet上。不过这是一个好的起点,这些功能可以和其他的技术或功能进行组合从而得到更高的应用,所以我认为数据库对SOAP/HTTP的支持是必要的,未来它可能成为评判一个Database的某种指标。

好吧,让我们看看下一个功能,这里我们会再看一些有关SQLXML的更多一些的内容,可是其中的许多是来源于SQL 2000 发布时就有的HTTP访问和XML支持功能。

特别说明:

本文原创,CSDN署名首发,所有文字和图片版权所有。未经授权请勿传播、转载或改编。

如果有问题或建议,请发电子邮件给new2001@msn.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝网络 版权所有