利用 Microsoft SQL Server 2000,可以直接向 SQL Server 发送查询,并通过 SQLXML 获得 XML 格式的返回结果,SQLXML 的最新版本为3.0。下面我们将通过 Northwind 数据库来演示一个小示例。此处仅是展示功能以便为您提供一点启示;如果您希望了解更多内容,请点击资源部分的链接以获取进一步的信息。
那么,现在就让我们来开始有趣的探索之旅吧。首先为 SQL 设置虚拟目录映射。在“开始”菜单中,从 Microsoft SQL Server 下选择 Configure SQL XML support in IIS 选项。选择 Web 站点,然后选择 “New” –> virtual directory。尽管此对话框中大多数选项卡都需要填充,但是我们可以从前三个开始。您需要创建虚拟目录名、用户凭据以及系统使用的数据库。选择使用虚拟目录名 nwind,指向 Northwind 数据库并添加一个 SQL用户,该用户带有仅用于 Northwind 数据库的权限。
在 URL 中,使用带参数的 SQL 表达式或存储的过程调用可执行 SQL XML 查询:(http://localhost/nwind?sql=select ProductName from Products for xml auto&root=root)。必须在配置工具中启用 'Allow sql= … or template= … queries in URL',以便进行此类查询。对于复杂的 SQL 语句或是在互联网环境中使用 SQL XML,那么使用该方法比使用模板的效果更好。模板会将查询封装在 XML 文档中。下面是对我们在前面创建的 URL 查询的扩展:
<sql:query>
SELECT Categories.CategoryName, Products.ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID
ORDER BY Categories.CategoryName,Products.ProductName
for xml auto
</sql:query>
</ROOT>
该示例返回的 XML 如下所示:
<Categories CategoryName="Beverages">
<Products ProductName="Chai"/>
<Products ProductName="Chang"/>
</Categories>
</ROOT>
请注意,我们可以包含一个对 XSL 页的引用,以便对返回的数据进行格式化。在能够访问该模板之前,还需要在配置工具中向此模板目录添加一个虚拟目录。在我们的测试系统中,用于访问该模板的 URL 为 http://localhost/nwind/queries/ProductsbyCategory.xml。这是一种比在 URL 中置入 sql 语句更清晰且更安全的语法。
有许多与使用 SQLXML 有关的很棒的东西,例如,在关系型数据中使用 XPath 查询、使用 XML、xdr、客户端或服务器端处理以及缓存更新数据库。
