This Domain(Admin5.com) is for Sale:

深入探讨SQLServer 2000对XML的支持

时间:2007-12-23  来源:不详  作者:迈克DB

 SetObjVDirs=ObjXML.SQLVDirs
 SetObjVDir=ObjVDirs.AddVirtualDirectory("Northwind")
 ObjVDir.PhysicalPath="C:Inetpubwwwrootorthwind"
 ObjVDir.UserName="wayne"’SQLServerlogin
 ObjVDir.Password=""’SQLServerPassword
 ObjVDir.DatabaseName="Northwind"
 objVDir.AllowFlags=73
 SetobjVNames=objVDir.VirtualNames
 objVNames.AddVirtualName"dbobject",1,""
 objVNames.AddVirtualName"schema",2,"C:Inetpubwwwrootorthwindschema"
 objVNames.AddVirtualName"template",4,"C:Inetpubwwwroot
 objXML.Disconnect
 msgbox"Done."
  二、使用HTTP执行SQL语句
 使用我们刚才创建的虚拟目录,我们就可以通过把SQL查询语句写入URL的方式执行查
询。打开浏览器,在地址栏中写入以下URL:http://localhost/northwind?sql=SELECT
* FROM Customers WHERE CustomerID=’ANTON’ FOR XML AUTO&root=root,假如你使用的虚
拟目录别名不是Northwind或者你使用一个远程服务器,只需要把相应的值改掉就可以了。
 浏览器中会出现:
  <?xmlversion="1.0"encoding="utf-8"?>
  <root>

本文来自织梦


  <CustomersCustomerID="ANTON"CompanyName="AntonioMorenoTaquería"
ContactName="AntonioMoreno"ContactTitle="Owner"Address="Mataderos2312"City="M
éxicoD.F."PostalCode="05023"Country="Mexico"Phone="(5)555-3932"/>
  </root>
 让我们来分析一下这个URL,“http://localhost/northwind”后面跟了一个SQL查询
语句,用来执行查询数据库Northwind的任务。在本例中,我们使用的查询语句是“
SELECT * FROM Customers WHERE CustomerID=’ANTON’”。请注重,这条语句已经被URL编码
过了,其中的空格都被替换成加号“ ”,这样它才能被浏览器正确的传送到数据库中去,关
 在查询语句之后,有添加了两个新的要害字:FORXML和AUTO。FORXML要害字可以对
现有的关系数据库执行SQL查询,以返回XML文档形式。AUTO模式则将查询结果作为嵌套
XML元素返回,在FROM子句内,每个在SELECT子句中至少有一列被列出的表都表示为一个
XML元素,SELECT子句中列出的列映射到适当的元素特性,当指定了ELEMENTS选项后,表
列映射到子元素而非特性。默认情况下,AUTO模式将表列映射到XML特性。
 在FORXMLAUTO后,还需要添加一个参数“root”,其参数值作为返回的XML文件的 本文来自织梦
root元素名。比如说,你可以把上面我给出的例子中的root的参数值设为Northwind,你会发
现,返回的XML文件中除了root元素名变为Northwind了以外,其它都没有变化。
 上面我们说的是直接使用HTTP中执行简单的查询,除此之外你还可以执行更加复杂的
查询,比如说连接不同的表进行查询,请看下面的例子,在下例中,SELECT语句连接了
Northwind数据库的中的Customers和Orders表,并返回信息。
  http://localhost/northwind?sql=SELECT
  Customer.CustomerID,Customer.Contact
  Name,[Order].OrderID FROM Customers
  Customer INNER JOIN Orders [Order%
  5d ON Customer.CustomerID=[Order%
  5d.CustomerID FOR XML AUTO&root=Northwind
  因为返回的XML文件太长,我就不把它列出来了。
 假如你不想在Customers表和Orders表中出现嵌套的话,SQLServer2000还提供另一
个要害字用来替代AUTO,这个要害字就是RAW。RAW模式将查询结果集中的每一行转换为带有
类属标识符row的XML元素。为了让您能够深入了解RAW,我再给出一个例子:使用RAW模
 下面的查询返回客户和订单信息。在FORXML子句中指定RAW模式。

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息