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

2016-01-29 16:09 11 1 收藏

深入探讨SQL Server 2000对XML的支持,深入探讨SQL Server 2000对XML的支持

【 tulaoshi.com - SQLServer 】

  引言

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

       我们可以很简单的使用ADO访问数据库中的数据,但是,如果我们想把从数据库中检索得到的数据以XML的格式显示出来的话,就要费点神了,当然,我们可以去找一些现成的应用程序或者是把现有的存储过程修改一下,来完成这个想法。

       虽说ADO2.5宣称支持XML,但是它仍需要一个额外的层来处理把数据转化成XML的过程。幸好有了SQL Server 2000,它宣称可以直接从数据库中取出数据,而不通过ADO2.5直接把数据以XML方式显示出来。这个功能极大的提高了构造分布式、数据集中的应用程序的性能,因为这个特性消除了不必要的代码层。

  让我们看一看,为了支持XML,SQL Server 2000添加了什么新的特性:

  1、能够使用 HTTP 访问 SQL Server。

  2、支持 XDR(XML数据简化)架构并且能够指定对这些架构的 XPath 查询。

  3、能够检索并写入 XML 数据:

    使用 SELECT 语句和 FOR XML 子句检索 XML 数据。

    使用 OPENXML 行集提供程序写入 XML 数据。

    使用 XPath 查询语言检索 XML 数据。

  4、增强了 Microsoft SQL Server 2000 OLE DB 提供程序 (SQLOLEDB),使得可以将 XML 文档设置为命令文本并以流的形式返回结果集。

  可见,我们可以使用好几种方法使用SQL Server 2000来访问XML格式的数据:第一种,在 URL 中执行的查询可以直接访问 SQL Server 2000生成XML文档(也可以调用存储在Web服务器上的XML模版生成XML数据文件)。第二种,可以使用SELECT命令和FOR XML关键字,通过调用一个存储过程或是通过使用XPath查询来取得XML数据。SQL Server 2000 完全支持 XDR(XML数据简化)架构,具有映射XML元素和属性到表和字段中的功能。下面,我就探讨一下SQL Server 2000对XML的支持特性。

  一、配置SQL Server 2000的IIS虚拟目录

  在本文的开始,我想先谈一谈如何配置SQL Server 2000的IIS虚拟目录。SQL Server 2000 允许为IIS创建一个虚拟目录,用来直接访问一个SQL数据库中的数据。一旦在一台配置了IIS的计算机上安装了SQL Server 2000,就可以运行SQL Server 的 IIS 虚拟目录管理实用工具来配置SQL Server 2000的IIS虚拟目录。

  好,让我们开始配置过程吧!

  在"SQL Server 工具"程序组中单击"在 IIS 中配置 SQL XML 支持",这时就会出现一个与IIS管理器相似的界面。展开服务器,选取默认的 Web 站点,点右键,在弹出的菜单中选取“新建”选项,然后单击"虚拟目录"命令。新虚拟目录的属性页将显示在屏幕上。在"新的虚拟目录属性"对话框的"常规"选项卡上,输入虚拟目录的名称,在本例中,请输入Northwind和物理目录路径(例如 C:InetpubWwwrootNorthwind,假设在 C:InetpubWwwroot 目录中已创建了 Northwind子目录),当然我们也可以使用“浏览”按钮选择目录。在“安全性”选项卡上,填入有效的 SQL Server 登录信息,在进入下一个选项卡时,它将要求你确认刚才输入的密码。在“数据源”选项卡上,在“SQL Server”框中输入服务器的名称,在“数据库”框中,输入 Northwind 作为默认数据库的名称。在"设置"选项卡上,你可以选择“允许 URL 查询”、“允许模板查询”、“允许 XPath”和“允许 POST”选项。

  在构建一个应用程序时,你不但要考虑到能够访问到SQL Server数据库,要有足够的安全级别以保证你的数据的安全性。在“虚拟名称”选项卡上,你可以更具自己的需要选择新建模板类型(template)、架构类型(schema)和模板和架构类型(dbonject),并创建它们的路径。好,我们这样就创建了虚拟目录 Northwind。默认情况下,使用该虚拟目录对 Northwind 数据库执行指定的查询。你一定迫不及待的吸纳高看看执行SQL的结果是什么样的了吧?好,让我们在浏览器中输入http://localhost/northwind?sql=SELECT * FROM CUSTOMERS FOR XML AUTO&root=root,试验一下吧!

  我们还可以编程来实现配置SQL Server 2000的IIS虚拟目录,请见下面的代码:
  Set ObjXML = CreateObject("SQLVDir.SQLVDirControl")

  ObjXML.Connect 'Connect to the local computer and Web site "1"

  Set ObjVDirs = ObjXML.SQLVDirs

  Set ObjVDir = ObjVDirs.AddVirtualDirectory("Northwind")

  ObjVDir.PhysicalPath = "C:Inetpubwwwrootnorthwind"

  ObjVDir.UserName = "wayne" 'SQL Server login

  ObjVDir.Password = "" 'SQL Server Password

  ObjVDir.DatabaseName = "Northwind"

  objVDir.AllowFlags = 73

  Set objVNames = objVDir.VirtualNames

  objVNames.AddVirtualName "dbobject", 1, ""

  objVNames.AddVirtualName "schema", 2,"C:Inetpubwwwrootnorthwindschema"

来源:http://www.tulaoshi.com/n/20160129/1497614.html

延伸阅读
标签: Java JAVA基础
java.util包中包含了一系列重要的集合类。本文将从分析源码入手,深入研究一个集合类的内部结构,以及遍历集合的迭代模式的源码实现内幕。 下面我们先简单讨论一个根接口Collection,然后分析一个抽象类AbstractList和它的对应Iterator接口,并仔细研究迭代子模式的实现原理。 本文讨论的源代码版本是JDK 1.4.2,因...
标签: SQLServer
  你们大部分人可能已经在SQL SERVER中建立自己的用户定义函数(UDF),但是你知道么?微软公司已经集成了大量自己的UDFs,特别是在最新发布的SP3中.在这篇文章中 Baya Pavliashvili和Kevin Kline系统地研究了关于SQL SERVER跟踪部分的UDF.你们中的一些人也许想阅读以前SQL Server Professional的一篇关于传统UDFs的文章,比如Andrew Zanevsky'...
本文给出了类型化和非类型化XML列各自的优势、将SQL Server 2000数据库迁移到SQL Server2005,新的异常处理如何工作;如果表的架构发生更改,我如何执行操作等,供大家参考! SQL Server 2005 包括对Transact-SQL (T-SQL) 语言的几项重要改进。新增功能之一是一种新的触发器,它在数据定义语言 (DDL) 语句运行时激发。在跟踪或保护数...
标签: SQLServer
可访问大地址的应用 (Large-Address-Aware Executables) 在Windows增加支持/3GB参数以前,一个应用程序是无法访问一个带有高位设置的指针.一个32位的指针只有前31位地址空间可以被用户模式的应用程序访问.这剩余的一位不用.因此有一些聪明的开发者因为其他的目的不愿意在处理内存地址空间时浪费这一位.(举例来说:可以用来标志一个指针引用其它...
标签: SQLServer
内存区域 SQL Server是分2块区域来组织内存分配,分别是Bpool (缓冲池区)和MemToLeave (内存释放区),如果你使用AWE内存,那么实际上有第三个区:Windows AWE支持的高于3GB的物理内存区。 缓冲池区是这3块内存区中最卓越的,是SQL SERVER最初分配的缓冲池供最初的数据页和索引页使用,并且被用来分配小于8K的内存。MemToLeave 是由虚拟内存...