共用方式為


命令數據流

ADO 一律支援 CommandText 屬性所指定的字串格式命令輸入。 使用 ADO 2.7 或更新版本時,也可以將數據流指派給 CommandStream 屬性,用作命令輸入。 您可以指派 ADO Stream 物件,或任何支援 COM IStream 介面的物件。

命令數據流的內容只會從 ADO 傳遞至您的提供者,因此您的提供者必須透過資料流支援命令輸入,此功能才能運作。 例如,SQL Server 支援 XML 範本形式的查詢,或 Transact-SQL 的 OpenXML 延伸模組。

由於數據流的詳細數據必須由提供者解譯,因此您必須藉由設定 Dialect 屬性來指定命令方言。 方言 的值是包含由提供者定義的 GUID 字串。 如需提供者所支援 方言 有效值的相關信息,請參閱提供者檔。

XML 範本查詢範例

下列範例是以 VBScript 撰寫至 Northwind 資料庫。

首先,初始化並開啟將用來包含查詢數據流的 Stream 物件:

Dim adoStreamQuery  
Set adoStreamQuery = Server.CreateObject("ADODB.Stream")  
adoStreamQuery.Open  

查詢數據流的內容將是 XML 範本查詢。

範本查詢需要 sql:sql:query> 標籤 <前置詞所識別的 XML 命名空間參考。 SQL SELECT 語句會包含為 XML 範本的內容,並指派給字串變數,如下所示:

sQuery = "<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql'>  
<sql:query> SELECT * FROM PRODUCTS ORDER BY PRODUCTNAME </sql:query>  
</ROOT>"  

接下來,將字串寫入資料流:

adoStreamQuery.WriteText sQuery, adWriteChar  
adoStreamQuery.Position = 0  

將 adoStreamQuery 指派給 ADO Command 物件的 CommandStream 属性:

Dim adoCmd  
Set adoCmd  = Server.CreateObject("ADODB.Command"")  
adoCmd.CommandStream = adoStreamQuery  

指定命令語言 Dialect,指出 SQL Server OLE DB 提供者應該如何解譯命令數據流。 由供應者特定的 GUID 指定的方言:

adoCmd.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}"  

最後,執行查詢並將結果傳回至 Recordset 物件:

Set objRS = adoCmd.Execute