深入探讨SQL Server 2000对XML的支持(三)

7、XML与数据库的深度整合:SQL Server 2000及其扩展 本文深入探讨SQL Server 2000中的XML功能及其与ADO.NET的集成,包括通过URL访问数据库资源、创建XML视图、返回查询结果为XML等特性。同时,介绍了如何使用FOR XML子句、SqlXmlAdapter以及SQLXML 3.0扩展来优化XML数据处理,并通过实际应用案例展示了XML在数据交换、备份恢复和系统集成中的重要作用。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 使用XML模板进行查询   SQL Server 2000通过在HTTP请求中内嵌SQL语句的功能显然是非常强大并且有用的。但是这种见也隐藏着极大的隐患,一旦某个最终用户了解了直接使用浏览器查询数据库的方法,那么数据库中的数据就很危险了,因为最终用户可能会尝试执行他自己的insert,update甚至是delete过程。   为了维护大部分数据库中数据交易的安全,使用户不能够直接使用URL进行查询,SQL Server 2000介绍了XML模板的概念,可以设置SQL Server虚拟目录把这些URL查询导向那些含有所需的SQL过程的XML模板中。   在我们讨论模板概念之前,让我们重新回到SQL Server的IIS虚拟目录管理器中,进入“设置”选项卡。为了防止用户使用HTTP访问,我们必须把“允许 URL 查询”选项给去掉。所有SQL查询现在都会被导向XML模板,XPath中。   为了允许XML模板执行SQL查询,进入“虚拟名称”选项卡,并单击新建按钮,新建一个模板文件夹,取名为templates,在下拉菜单中选择template。然后,要么输入一个你的 XML模板将储存的路径或者单击“浏览”按钮。本例中使用C:/Inetpub/wwwroot/xml/templates。一旦你已经提供了所有的必要的信息,请单击“保存”按钮。   现在一个虚拟目录已经被映射到一个指定来保存 XML查询模板的文件夹,让我们创建一个有效的 XML模板,用来执行 SQL查询。下面的代码是一个模板示例。   file2.xml <Northwind xmlns:sql= "urn:schemas-microsoft-com:xml-sql"> <sql:query> SELECT Customers.CustomerID, Customers.ContactName, Orders.OrderID, Orders.CustomerID FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID FOR XML AUTO </sql:query> </Northwind>   这段代码中使用了一个名为sql的前缀和一个URI urn:schemas-microsoft-com:xml-sql,这个前缀用来标识使用在 SQL Server XML ISAPI上的元素。有一个元素名为query,顾名思义它就是用来标记模板文件中的SQL 查询语句。好,让我们来演示一下如何使用这个模板吧!请在地址栏中输入,http://localhost/northwind/templates/file2.xml,当然你也可以根据你的需要改变相应的服务器名和虚拟目录名。   让我们把这个 URL拆分成单独的片段,进行分析,你可以看见,我们先使用了 northwind虚拟根,然后使用templates虚拟目录名,如前我们说过,该虚拟目录名已经映射到templates的物理目录中。最后, URL给出了模板文件的名称。执行这个模板,浏览器就会把表中customers元素下嵌套的不同的订单以XML文档的形式显示出来。   使用模板而不使用 URL查询有许多优点。首先,现在一个最终用户就没有改变SQL语句的权力了,去除“通过URL查询访问 SQL Server服务器”的选项 ,就只有SQL Server XML ISAPI可以用来处理模板文件,这就避免未经授权的 插入、更新和删除程序被执行。其次, XML模板支持动态加入参数,这就允许你不用更改模板文件就可以更改一个 SQL WHERE子句的值。   使用参数,就像插入一个 XML header元素一样简单的,在 header元素中,定义了一个 param元素,使用一个值为CustomerID的名称属性。这个参数被赋予一个默认值"A",你可以象在一个存储过程中一样在模板文件中使用这个参数,只要在这个参数前添加一个@,然后把它放入SQL语句或用来调用一个存储过程就可以了。请见下面的代码。 <Northwind xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:header> <sql:param name='CustomerID'>A</sql:param> </sql:header> <sql:query> SELECT Customers.CustomerID, Customers.ContactName, Orders.OrderID, Orders.CustomerID FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID WHERE Customers.CustomerID LIKE @CustomerID '%' FOR XML AUTO </sql:query> </Northwind>   在本例中,CustomerID参数被一个WHERE子句使用。如果把参数设为"B",SQL 语句就会从Customers和Orders表中返回所有的CustomerID以B开头的行。调用模板并传递正确的CustomerID参数值,只要在查询字符串之后加上参数名和参数值,如:http://localhost/northwind/templates/file2.xml?CustomerID=B即可,就这么简单。
SQL Server 2000一键安装实战指南 SQL Server 2000 是微软于2000年推出的重要数据库版本,标志着其在企业级数据库领域的成熟与广泛应用。作为 SQL Server 7.0 的继任者,该版本在稳定性、性能和可管理性方面进行了大幅提升,成为当时众多企业和机构构建核心业务系统的基础平台。SQL Server 2000 提供了完整的事务处理能力、支持多用户并发访问、具备数据复制与分布式查询功能,并首次集成了对XML支持 阅读详情

相关推荐

深入掌握SQL Server 2000:高级教程实战指南

本文还有配套的精品资源,点击获取 简介:本书深入探讨SQL Server 2000数据库系统的高级特性和应用,包括T-SQL语言、索引优化、视图、存储过程、触发器、安全性、备份恢复、数据库复制、性能监控、数据库设计、XML支持和分析服务等关键概念。通过系统的指导和实例,帮助读者全面提升SQL Server 2000数据库的管理和维护技能,确保数据库系统的稳定性和性能。 ...

weixin_35509395的博客 973

SQLServer2000存储过程与XML

SQLServer2000存储过程与XMLSQLServer2000存储过程与XML

Microsoft SQL Server 2000 SP4关键补丁详解

在数据库管理系统的世界里,补丁是确保数据库安全性和性能持续优化的关键组件。SQL Server 2000 SP4补丁,作为这个领域的老牌数据库系统——SQL Server 2000的最新服务包,承载着至关重要的更新使命。服务包(Service Pack)是软件供应商为了集中修复软件中存在的错误、漏洞和性能问题而发布的集成更新集合。对于SQL Server 2000来说,服务包是一个重要的组成部分,它能够为数据库管理员提供一套集成了多种改进措施的打包解决方案。

weixin_30336531的博客 1108

深入探讨SQL Server 2000XML支持

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 578

关于SQL Server 2000XML支持的一些见解

                          关于SQL Server 2000XML支持的一些见解主要针对"select  字段1,字段2,...,字段n from 表或多表联合查询 where 条件 for xml auto"类似语句的讨论本人在使用以上语句生成XML数据时,发现了一些SQL Server 2000生成XML数据的一些规律,给我的感觉是要求太苛刻了,从中也可以看出微

yzc的专栏 1854

如何使用SQL Server 2000中的XML功能

如何使用SQL Server 2000中的XML功能   在本文中我们将讨论如何通过T-SQL的FOR XML子句从SQL Server返回XML。本文将通过几个例子来介绍返回XML数据和架构信息的几种不同方式,还将介绍将XML转换成更令人满意的格式的方法。然后讨论OPENXML,以及将XML文档联接到数据库表和使用WriteXml和GetXml方法从数据集提取XML的方法。  S

jasonfqw的专栏 715

深入探讨SQL Server 2000XML支持()

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 277

深入探讨SQL Server 2000XML支持 选择自 softj 的 Blog

深入探讨SQL Server 2000XML支持                     Wayne   [作者简介:]Wayne,新一代程序员,十二岁时开始学习编程,十岁时拥有自己的电脑,先后学过Basic、Pascal、C、FOXPRO、VB、DELPHI、C++、SQL,学习Java语言后,遂成为Java的疯狂崇拜者,现就读于中国科技大学。  引言

泰山之峰的专栏 1005

[sql server] SQL Server 2000 XML之七种兵器

<br />XML,已成为近来最热门的Web技术,它是SQL Server 2000中的重要部分。本文将综合七条SQL Server 2000中最重要的XML综合特性组成XML之七种兵器。 <br />兵器之一:FOR XML<br />  在SQL Server 2000中,标准的T-SQL SELECT语句包括FOR XML子句,它以XML文档形式返回一个查询结果。新的FOR XML子句有种模式——RAW,AUTO,和EXPLICIT,每个都能对XML文档格式提供附加标准的控制。<br />  下面首

永生天地 1788

深入探讨SQL Server 2000XML支持()

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 257

深入探讨SQL Server 2000XML支持()

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 369

深入探讨SQLServer2000XML支持

来自:linux宝库 (http://www.linuxmine.com) 联系:linuxmine#gmail.com 分类:[SQL Server]   我们可以很简

№悟◇ 923
上一篇: 使用 JMS 技术作为数据复制的解决方案
下一篇: Java Api for XML 与 XML 标准的对应
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值