首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2000 中使用 XDR Schema 進行 XML 查詢的實戰範例

     編輯:關於SqlServer

SQL Server 2000 透過 XDR (XML-Data Reduced) Schema 將關聯資料表映射為 XML 視圖,支援以 XPath 風格查詢直接產生 XML 結果。本文提供一個完整的 ASP + ADO 範例,示範如何設定 Command 物件屬性、指定 Mapping Schema、執行查詢並輸出 XML 資料島。

核心程式碼 (ASP + VBScript)

<%@ Language=VBScript %>
<%
Dim sConn
sConn = "Provider=SQLOLEDB; Data Source=(local); Initial Catalog=Northwind; User ID=SA; Password=;"

Dim adoConn
Set adoConn = Server.CreateObject("ADODB.Connection")
adoConn.ConnectionString = sConn
adoConn.CursorLocation = 3 ' adUseClient
adoConn.Open

Dim adoCmd
Set adoCmd = CreateObject("ADODB.Command")
Set adoCmd.ActiveConnection = adoConn

' 關鍵:使用 XPath 風格查詢,而非 T-SQL
adoCmd.CommandText = "Customer[@CompanyName='Tortuga Restaurante']"

' 關鍵:指定 SQLXML 方言 GUID
adoCmd.Dialect = "{ec2a4293-e898-11d2-b1b7-00c04f680c56}"

' 關鍵:指定 XDR Schema 檔案路徑
adoCmd.Properties("Mapping Schema") = "Orders.XML"
adoCmd.Properties("Base Path") = "C:\INETPUB\WWWROOT\PBA"

' 直接輸出至 Response 串流
adoCmd.Properties("Output Stream") = Response
Response.Write "<XML ID='MyDataIsle'>"
adoCmd.Execute , , 1024 ' adExecuteStream
Response.Write "</XML>"
%>

關鍵屬性解析

屬性用途備註
Dialect指定查詢語言方言固定 GUID 代表 SQLXML XPath 查詢
Mapping SchemaXDR Schema 檔名定義資料表/欄位到 XML 元素/屬性的對應
Base PathSchema 檔案所在目錄相對路徑基準
Output Stream結果輸出目標此處直接串流至 HTTP 回應
adExecuteStream (1024)執行選項表示命令輸出為串流

XDR Schema 範例結構 (Orders.XML)

<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <ElementType name="Customer" content="eltOnly">
    <AttributeType name="CustomerID"/>
    <AttributeType name="CompanyName"/>
    <attribute type="CustomerID"/>
    <attribute type="CompanyName"/>
    <element type="Order"/>
  </ElementType>
  <ElementType name="Order" content="eltOnly">
    <AttributeType name="OrderID"/>
    <AttributeType name="OrderDate"/>
    <attribute type="OrderID"/>
    <attribute type="OrderDate"/>
  </ElementType>
  <sql:relationship name="CustOrders" parent="Customer" child="Order" parent-key="CustomerID" child-key="CustomerID" xmlns:sql="urn:schemas-microsoft-com:xml-sql"/>
</Schema>

執行結果

瀏覽器將接收到如下 XML 資料島:

<XML ID='MyDataIsle'>
  <Customer CustomerID="TORTU" CompanyName="Tortuga Restaurante">
    <Order OrderID="10248" OrderDate="1996-07-04T00:00:00"/>
    <Order OrderID="10249" OrderDate="1996-07-05T00:00:00"/>
  </Customer>
</XML>

遷移提醒

XDR Schema 為 SQL Server 2000 專有技術,後續版本(2005+)全面轉向 XSD Schema 並整合 FOR XML、OPENXML、xml 資料型別。新專案請直接採用 XSD + sql:relation/sql:field 註解映射,並搭配 sp_xml_preparedocument / OPENXML 或原生 XML 索引進行查詢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved