SQL Server 2000 透過 FOR XML 子句可將查詢結果直接轉為 XML,大幅提升開發效率與系統效能。詳細語法請參閱 Books Online。
使用 ADO 2.6 以上版本時,傳統 Recordset 無法直接讀取 XML 內容,只會取得 Unicode 格式的 XML Schema。正確做法是採用 Stream 物件 接收與輸出 XML。
Input Stream:輸入 XML 來源(如 XML Parser 介面、Request 物件)。Output Stream:輸出 XML 目的地(如 Response 物件、檔案串流)。優點:避免建立中間 Recordset,節省記憶體與序列化開銷。
Dim cmd, streamOut
Set cmd = Server.CreateObject("ADODB.Command")
Set streamOut = Server.CreateObject("ADODB.Stream")
streamOut.Open
cmd.ActiveConnection = conn
cmd.CommandText = "SELECT * FROM Products FOR XML AUTO"
cmd.Properties("Output Stream") = streamOut
cmd.Execute , , adExecuteStream
Response.ContentType = "text/xml"
Response.BinaryWrite streamOut.Read
streamOut.Close
善用 FOR XML 搭配 ADO Stream,可構建高效能的 XML 資料服務,適合 Web Service 與異構系統整合。