SQLXMLOLEDB 提供者是 OLE DB 提供者,可透過 ActiveX 資料物件 (ADO) 公開Microsoft SQLXML 功能。 不過,提供者只能在 ADO 的「寫入至輸出數據流」模式中執行命令。 SQLXMLOLEDB 提供者不是數據列集提供者。 當您執行命令時,必須指定 adExecuteStream 旗標,以指示 ADO 使用您指定的輸出數據流。
下列範例顯示指定 adExecuteStream 旗標之 Execute 命令的語法:
Dim oTestCommand As New ADODB.Command
...
oTestCommand.Properties("Output Stream").Value = oTestStream
oTestCommand.Execute , , adExecuteStream
...
SQLXMLOLEDB 提供者特定屬性
SQLXMLOLEDB 提供者會公開下列提供者特定的連接屬性。
| 連線 財產 |
預設 (如果有) |
說明 |
|---|---|---|
| 數據提供者 | 提供 OLE DB 提供者的 PROGID,讓 SQLXMLOLEDB 執行命令。 從 SQLXML 4.0 和 SQL Server 2005 開始,此提供者包含在 SQL Server Native Client 中;因此,這個屬性值限制為「SQLNCLI11」。 如需詳細資訊,請參閱 SQL Server Native Client 程式設計。 |
SQLXMLOLEDB 提供者會公開下列提供者特定的命令屬性。
| 指令 財產 |
預設 (如果有) |
說明 |
|---|---|---|
| 基礎路徑 | "" | 指定基底檔案路徑。 基底檔案路徑是用來指定 XML Stylesheet Language (XSL) 或對應架構檔案的位置。 基底檔案路徑也可用來解析 XSL 的相對路徑,或 XSL 或對應架構屬性中指定的架構檔案。 如需使用此屬性的範例,請參閱執行 XPath 查詢(SQLXMLOLEDB 提供者)。 |
| ClientSideXML | 否 | 如果您希望將資料列集轉換成 XML 的程式發生在用戶端上,而不是在伺服器上,請將此屬性設定為 True。 當您想要將效能負載移至中介層時,這會很有用。 如需使用此屬性的範例,請參閱執行 SQL 查詢(SQLXMLOLEDB 提供者)或執行包含 SQL 查詢的範本(SQLXMLOLEDB 提供者)。 |
| 內容類型 | 傳回輸出內容類型。 這是 READ ONLY 屬性。 這個屬性會向瀏覽器提供內容類型的相關信息(例如 TEXT/XML、TEXT/HTML、image/jpeg 等等)。 這個屬性的值會成為當做 HTTP 標頭一部分傳送至瀏覽器的 內容類型 欄位,其中包含要傳送為本文之檔的 MIME 類型 (Multipurpose Internet Mail Extensions) 。 |
|
| 對應架構 | 零 | 如果用戶端應用程式針對對應架構執行 XPath 查詢(XDR 或 XSD),這個屬性會用來指定對應架構的名稱。 指定的路徑可以是相對路徑(xyz/abc/MySchema.xml)或絕對 (C:\MyFolder\abc\MySchema.xml)。 如果指定了相對路徑,則會使用基底路徑屬性所指定的基底路徑來解析相對路徑。 如果基底路徑屬性中未指定路徑,相對路徑會相對於目前目錄。 在指定對應架構屬性的值時,您可以指定本機目錄路徑或 URL(http://...)。如果您指定 URL,則必須將 WinHTTP 設定為透過 Proxy 伺服器存取 HTTP 和 HTTPS 伺服器。 您可以執行 Proxycfg.exe 公用程式來執行此動作。 如需詳細資訊,請參閱 MSDN Library 中的<使用 WinHTTP Proxy 組態公用程式>。 如需使用此屬性的範例,請參閱執行 XPath 查詢(SQLXMLOLEDB 提供者)。 |
| 命名空間 | 這個屬性可讓您執行使用命名空間的 XPath 查詢。 如需使用此屬性的範例,請參閱使用命名空間執行 XPath 查詢(SQLXMLOLEDB 提供者)。 | |
| ss 數據流旗標 | 這個屬性是用來指定特定類型的安全性限制。 例如,您可能不想允許檔案的 URL 參考或檔案的絕對路徑(例如外部網站)。 或者,您可能不想允許範本中的查詢。 屬性可以指派這些值: 1 = STREAM_FLAGS_DISALLOW_URL 2 = STREAM_FLAGS_DISALLOW_ABSOLUTE_PATH 4 = STREAM_FLAGS_DISALLOW_QUERY 8 = STREAM_FLAGS_ DONTCACHEMAPPINGSCHEMA 16 = STREAM_FLAGS_DONTCACHETEMPLATE 32 = STREAM_FLAGS_DONTCACHEXSL 下表提供這些值的其他資訊。 |
|
| xml 根目錄 | 這個屬性是用來定義所產生 XML 的根標記。 例如,如果您對資料庫執行 SQL 查詢,而產生的 XML 檔沒有單一根元素,則會使用 屬性的值,將單一根元素新增至檔。 如需使用此屬性的範例,請參閱執行 SQL 查詢(SQLXMLOLEDB 提供者)。 |
|
| xsl | 當您想要將 XSL 轉換套用至查詢所傳回的 XML 檔時,這個屬性會用來指定 XSL 檔名。 指定的路徑可以是相對路徑(xyz/abc/MyXSL.xsl)或絕對 (C:\MyFolder\abc\MyXSL.xsl)。 如果指定了相對路徑,則會使用基底路徑屬性所指定的基底路徑來解析相對路徑。 如果基底路徑屬性中未指定路徑,相對路徑會相對於目前目錄。 如需使用此屬性的範例,請參閱套用 XSL 轉換 (SQLXMLOLEDB 提供者)。 |
下表包含 ss Stream Flags 屬性值的描述。
| 屬性值 | 說明 |
|---|---|
| STREAM_FLAGS_DISALLOW_URL | 對應架構或 XSL 不接受 URL。 |
| STREAM_FLAGS_DISALLOW_ABSOLTE_PATH | 針對對應架構或 XSL 指定的路徑必須相對於範本本身的基底路徑。 |
| STREAM_FLAGS_DISALLOW_QUERY | 範本中不允許查詢。 |
| STREAM_FLAGS_DONTCACHEMAPPINGSCHEMA | 不會快取對應架構。 當資料庫架構受限於變更時,這個屬性值在資料庫開發階段很有用。 |
| STREAM_FLAGS_DONTCACHETEMPLATE | 不會快取範本。 |
| STREAM_FLAGS_DONTCACHEXSL | 不會快取 XSL。 |