2005-09-29

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

来源: 天极中文网 作者:Wayne 评论 0 条
 

  我们还可以编程来实现配置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"

  objVNames.AddVirtualName "template", 4 , "C:Inetpubwwwrootnorthwindtemplate"

  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或者你使用一个远程服务器,只需要把相应的值改掉就可以了。

  浏览器中会出现:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Customers CustomerID="ANTON" CompanyName="Antonio Moreno Taquería" ContactName="Antonio Moreno" ContactTitle="Owner" Address="Mataderos 2312" City="México D.F." PostalCode="05023" Country="Mexico" Phone="(5) 555-3932" />
</root>
  让我们来分析一下这个URL,“http://localhost/northwind”后面跟了一个SQL查询语句,用来执行查询数据库Northwind的任务。在本例中,我们使用的查询语句是“SELECT * FROM Customers WHERE CustomerID='ANTON'”。请注重,这条语句已经被URL编码过了,其中的空格都被替换成加号“ ”,这样它才能被浏览器正确的传送到数据库中去,关于URL编码格式请您参阅相关文档。

  在查询语句之后,有添加了两个新的要害字:FOR XML和AUTO。FOR XML要害字可以对现有的关系数据库执行 SQL 查询,以返回 XML 文档形式。AUTO模式则将查询结果作为嵌套 XML 元素返回,在 FROM 子句内,每个在 SELECT 子句中至少有一列被列出的表都表示为一个 XML 元素,SELECT 子句中列出的列映射到适当的元素特性,当指定了 ELEMENTS 选项后,表列映射到子元素而非特性。默认情况下,AUTO 模式将表列映射到 XML 特性。

  在FOR XML AUTO后,还需要添加一个参数“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
共7页: 上一页 [1] 2 [3] [4] [5] [6] [7] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:SQL Server导出导入数据方法  
下一篇:SQL Server中如何计算农历
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号