打印

[建站经验与技巧] 使sql server数据支持 xml

使sql server数据支持 xml

  如果你在it业工作,那么你很可能听说过xml;但如果你的工作主要与sql server有关,那么你可能并没有直接运用过xml。xml已经是web编程环境中的普遍的数据格式了,而且它也是.net framework中主要的底层技术之一。sql server以两种方式来支持xml:通过sql server本身的功能,以及通过发布称为sqlxml的额外的功能。sqlxml扩展了sql server,并提供了xml兼容性。在本月的专栏中,我将讲述sql server对xml的内置的支持,并讲述通过发布sqlxml而增加的一些功能(见 图1)。sql server支持xml就意味着,我们可以更有效地更新和读取数据了;我们不再需要将xml数据转换成数据库可以理解的另一种格式,或将xml数据从数据库转换成xml。而且,可供开发人员选择的方法也更多了,就是说,他们在访问数据方面更灵活了。
3 q$ T( {1 y( m2 k# w1 x3 qbbs.163k.com163k团购网站系统官方服务论坛0 T- ^2 L! Q& d( L' k
  对xml的宣传已经有很多了,所以重要的一点是要意识到它只是一门简单的技术。本质上,它是用来描述数据的一个标准的文件格式。(有关xml基础知识的更多的信息,请参阅工具条“xml 101”。)从发布sql server 2000的最初版本以来,对xml的支持就已经是sql server的一部分了。sql server不是通过提供一个方法保存xml文件来支持xml的,而是提供了一个到关系数据的接口,使你可以在表和其它数据库对象中读写xml数据。sql server所固有的xml功能包括:可以通过http、模板查询、for xml子句和openxml()函数来访问sql server。接下来,我将讲述这些功能是如何运作的,以及它们可以如何使你的企业受益。 bbs.163k.com8 Q" J7 D% N, \. l8 P8 m

1 x: @5 [/ Z: O& ^: J0 ^团购网站系统,团购网程序bbs.163k.com0 t2 N  W8 M$ M9 x, i
  
1 L" ~+ V; D+ o0 m* b
& f; m# `  |7 T) K% I0 a163K网站系统官方论坛. h9 i) N1 b3 ?0 b  {! ]
( j' Z9 r& t; a8 L' w2 @9 T$ t

3 c3 q% i1 {/ Y. A* B0 k, Y% J+ A163K网站系统官方论坛
( ~- @( L2 D6 Q7 v团购网站系统,团购网程序  图1. 提供 xml支持
! {! f# @  S2 d+ v1 M163K网站系统官方论坛团购网站系统,团购网程序6 B/ t! o0 L; ]0 `* g; ]
  要通过http访问一个sql server数据库,你必须首先设置一个虚拟目录。这个虚拟目录在http协议和一个特定的数据库之间提供了一个链接。设置虚拟目录时,我们需要用“configure sql xml support in iis”菜单条目,你可以在window的start菜单中的sql server菜单条目找到该项。通过该菜单条目,你就可以指定虚拟目录的名称、物理路径、服务器名称、数据库名称和注册信息。一旦你创建了一个虚拟目录,你就可以通过一个url将查询发送到数据库了。如果你设置了一个叫做northwind的虚拟目录,并在浏览器中输入了查询http://localhost/northwind?sql=select+*+from+shippers+for+xml+auto,elements+&root=shippers,它就会返回类似于“xml 101”工具条中的shippers例子中的xml数据。与运用ado或其它任何技术相比,http查询会让我们更容易地来访问网站或web应用程序的数据。 对于一个简单的查询语句来说,http查询会很好,但对于一个更复杂的查询来说,这种格式就会变得难以理解并很难管理了。这种方法也不安全,因为查询源代码是暴露给用户的。另外一种可选方法是在http上调用一个模板查询。一个模板查询就是一个包含sql查询的xml文件。模板作为文件保存在服务器上。因此,如果你在一个叫做getshippers.xml的模板中封装了shippers select查询,那么url查询的形式就会是:http://localhost/northwind/templates/getshippers.xml。模板也可以带有参数,当你的模板调用一个存储过程时,该功能会很有用。在url查询和模板查询中,如果你想从查询返回一个html页面,那么你可以指定一个xslt样式表,将它用于xml。模板查询是读取数据的一个更安全的方法,它可以被缓存以得到更好的性能。bbs.163k.com7 T* g/ m+ y% z

* j* [/ r3 o7 f# B9 T6 @; Q( x& I163K网站系统官方论坛

TOP

返回顶部
AYBlue

Processed in 0.048068 second(s), 6 queries.

当前时区 GMT+8, 现在时间是 2008-12-3 05:48 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP