| 搜索频道 | 源码下载 | 站长代码论坛 | 文章分类 | 最新专题 | 源码交易 | 加入收藏
首页|资讯|图形图像|网站开发|程序设计|数据库|多媒体|机械电子|办公系列|路由技术|原理|应用|考试|系统
文章搜索:
 您的位置:首页网站开发XML → SQL Server和XML的集成
SQL Server和XML的集成

日期:2006-7-12 12:08:25 人气:     [ ]
   XML可谓最新的数据存储解决方案了。XML相比HTML给予了Web开发人员更大的编程灵活性。这种新技术驱动开发机构尝试把XML同自己的产品集成起来。微软就是采取如此举措的先驱者。微软公司在开发Internet产品的时候一度慢慢腾腾,现在可就不同了。最近一位微软公司的高级职员就这样说:“你要给我们一刀,伤口里出来的尽是XML。”也许形容得有点过分,但事实确实是这样的:微软的几乎所有产品中都能看到XML的身影。举个例子:微软是如何在其SQL Server产品线中集成XML的呢?下面咱们就来看看关键的FOR XML子句。

以XML的名义获取信息

SQL Server和XML之间的集成首要一点就是根据SQL数据创建XML文件。XML文件的构造并不复杂,用简单的脚本和ADO记录集就可以轻松产生。这个任务虽然不算麻烦,但开发人员却需要针对他们从服务器获取的结果集合产生不同的脚本,或者编写更为复杂的通用脚本。SELECT 语句则由此而配备了新的FOR XML子句。

该子句的语法如下所示:
[ FOR { XML { RAW | AUTO | EXPLIC99v }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY BASE64 ] } ]

FOR XML子句的XML模式由三种参数值表示:RAW、AUTO或者EXPLIC99v。模式决定了结果XML的形式和组成。下面我们就更深入些地通过以下示例了解以上各个XML选项。

RAW示例
我们执行以下的SQL语句:
SET ROWCOUNT 3
SELECT Orders.OrderID, Orders.OrderDate, ProductID
FROM Orders, [Order Details]
WHERE Orders.OrderID = [Order Details].OrderID
ORDER BY Orders.OrderID
FOR XML RAW

执行后产生的结果如下:
<row OrderID="10248" OrderDate="1996-07-04T00:00:00" ProductID="11"/>
<row OrderID="10248" OrderDate="1996-07-04T00:00:00" ProductID="42"/>
<row OrderID="10248" OrderDate="1996-07-04T00:00:00" ProductID="72"/>

AUTO示例
我们执行以下的SQL语句:
‘结果限制为3条记录。
SET ROWCOUNT 3
SELECT Orders.OrderID, Orders.OrderDate, ProductID
FROM Orders, [Order Details]
WHERE Orders.OrderID = [Order Details].OrderID
ORDER BY Orders.OrderID
FOR XML AUTO

产生的结果如下所示:
<Orders OrderID="10248" OrderDate="1996-07-04T00:00:00">
<Order_x0020_Details ProductID="11"/>
<Order_x0020_Details ProductID="42"/>
<Order_x0020_Details ProductID="72"/>
</Orders>

EXPLIC99v示例
Explicit模式给予查询编程人员对产生XML的完全控制能力。然而这种控制力度却要价不菲:你得编写每一查询以便SQL语句能包含XML信息。

有关的语法很复杂,而且超出了本文的讨论范围。[ , XMLDATA ] [ , ELEMENTS ] [ , BINARY BASE64 ] 是相应的可选参数。

可选元素


示例可以让我们对各种设置的内部工作机理有更多的了解,下面我们就进一步研究下FOR XML语句的可选元素XMLDATA。

如果你设置该选项,那么XML-Data schema就会包含在结果集合里。以下是SQL语句:
SET ROWCOUNT 3
SELECT Orders.OrderID, Orders.OrderDate, ProductID
FROM Orders, [Order Details]
WHERE Orders.OrderID = [Order Details].OrderID
ORDER BY Orders.OrderID
FOR XML AUTO, XMLDATA

以上的SQL语句产生以下结果:
<Schema name="Schema2" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="Orders" content="eltOnly" model="closed" order="many"><element type="Order_x0020_Details" maxOccurs="*"/>…

ELEMENTS
ELEMENTS选项指示各数据列作为子元素而非属性返回。假如你采用AUTO模式就可以只采用该选项。

BINARY BASE64
使用该选项表示你希望采用base64编码格式表示二进制数据。

 

采用XML子句的说法可就多了,你最好参考下SQL在线图书。

在线指南
SQL Server在线图书 对FOR XML子句的用法进行了阐述。而且还提到了在使用这一子句时要注意的多项限制。比方说,FOR XML字句不能同视图定义或者COMPUTE BY子句合用。你不妨参考有关文档了解更多细节。

本文只是对FOR XML子句的简单说明,这里要提醒你的是这一部分不过是XML同SQL Server集成需要注意的一点,其他方面的问题还包括IIS的OPENXML 函数和模版文件等。看来真是这样,SQL Server的每个毛孔都滴着XML这种东西。

出处:本站原创 作者:zzcode
 相关文章
·XML 中的常见问题
·XML新增批注、处理指令与CDATA 区段
·vbs类生成xml文件
·How to generate XML with SQL 2000
·在不支持FSO的服务器上使用XMLDOM创建HTML文件
·使用XPathExpression类对XML进行排序
·web.xml中的 security-role 的運\作剖析
·利用XML不离开页面刷新数据
·XML 取得元素的字符数据
·使用文件对象模型Script来显示XML文件
 相关软件
·ASP+XML 精美留言本
·E路XML留言本(Elook XML GuestBook) v1.0 无组件..
·爱上网XML自助链接
·JOB571.COM即插即用自助友情链接(XML版)
·XML 编程从入门到精通(PDF)
·厦门普工招聘网XML留言簿
·XMLBlueprint XML Editor v3.6
·Altova XMLSpy 2005 SP3 企业特别版
·Ektron eWebEditPro+XML v4.2.0.11 特别版
·XMLwriter v2.5 特别版
 

 热点文章

·用ASP、VB和XML建立互..
·XML新增批注、处理指令..
·XML 中的常见问题
·简单的XML留言板
·带可选项、带图片的无..
·将XML文件链接至HTML网..
·用XML实现国家、省的动..
·XML与其相关技术
·简析JAVA的XML编程
·构造未来Web页面的工具..
·web.xml中的 security..
·使用xmlhttp 实现多文..
·利用XML不离开页面刷新..
·XML入门精解之结构与语..
·SQL Server和XML的集成..

 推荐文章

·端午非物质文化遗产登..
·动态网站Web开发PHP、..
·PS绘中秋佳节的一轮明..
·细谈网页优化和网站优..
·建站常识:如何使用FT..
·如何快速建造一个成功..
·ASP.NET 2.0 中的创建..
·ASP.NET2.0服务器控件..
·在ASP.NET应用中插入f..
·用Photoshop打造逼真立..
·Windows 2003搭建虚拟..
·站长必读:Web创业的1..
·如何测试机房的速度和..
·北京奥运体育图标发布..
·网络视频广告将身价百..