SQL Server 2000 內建強大的 XML 功能,透過 FOR XML 子句即可輕易將查詢結果轉換為 XML 格式。這不僅大幅提升系統執行效率,也能加速開發流程。詳細語法與選項請參考《SQL Server 線上叢書》。
使用 ADO(需 2.6 版以上)存取回傳的 XML 時,與傳統 Recordset 方式截然不同。若仍沿用 Recordset,只能取得 Unicode 格式的 XML Schema,無法獲得實際的 XML 內容。
ADO 實際上是以 Stream 方式輸入/輸出 XML。Command 物件提供 Input Stream 與 Output Stream 兩個屬性,其值為 IUnknown 介面。開發者可將 XML Parser 的介面指派給它,或直接使用 Request、Response 等內建物件。這樣的好處在於:
RecordsetDim cmd As New ADODB.Command
Dim xmlOut As New ADODB.Stream
cmd.ActiveConnection = conn
cmd.CommandText = "SELECT * FROM Customers FOR XML AUTO"
cmd.Properties("Output Stream") = xmlOut
cmd.Execute
' xmlOut 現在包含完整的 XML 文件
掌握 Stream 機制後,即可在 ASP、VB 等環境中高效處理 SQL Server 產出的 XML 資料流。