SQLXMLOLEDB 提供者簡介 (SQLXML 4.0)
SQLXMLOLEDB 提供者是一種 OLE DB 提供者,可透過 ActiveX Data Objects (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 提供者會公開以下提供者特有的連接屬性。
連接 屬性 |
預設值 (如果有的話) |
描述 |
---|---|---|
Data Provider |
|
提供 OLE DB 提供者的 PROGID,SQLXMLOLEDB 會透過它來執行命令。從 SQLXML 4.0 和 SQL Server 2005 開始,這個提供者就會包含在 SQL Server Native Client 中;因此,這個屬性值受限為 "SQLNCLI10"。如需詳細資訊,請參閱<SQL Server 2008 Native Client 程式設計>。 |
SQLXMLOLEDB 提供者會公開以下提供者特有的命令屬性。
命令 屬性 |
預設值 (如果有的話) |
描述 |
---|---|---|
Base Path |
"" |
指定基底檔案路徑。基底檔案路徑是用來指定 XML 樣式表語言 (XSL) 或對應結構描述檔案的位置。基底檔案路徑也是用來解析 XSL 或 Mapping Schema 屬性中已指定的 XSL 或對應結構描述檔案的相對路徑。 如需使用這個屬性的範例,請參閱<執行 XPath 查詢 (SQLXMLOLEDB 提供者)>。 |
ClientSideXML |
False |
如果您希望將資料列集轉換成 XML 的程序發生在用戶端而不是伺服器上,請將這個屬性設定為 True。如果您想要將效能負載移到中介層,這個作法會很實用。 如需使用這個屬性的範例,請參閱<執行 SQL 查詢 (SQLXMLOLEDB 提供者)>或<執行包含 SQL 查詢的範本 (SQLXMLOLEDB 提供者)>。 |
Content Type |
|
傳回輸出內容類型。這是 READ ONLY 屬性。 這個屬性會將有關內容類型 (如 TEXT/XML、TEXT/HTML、image/jpeg 等等) 的資訊提供給瀏覽器。這個屬性的值會變成 content-type 欄位,此欄位會當做 HTTP 標頭的一部分傳送給瀏覽器,該標頭中包含當做主體傳送之文件的 MIME 類型 (多用途網際網路郵件延伸標準)。 |
Mapping Schema |
NULL |
如果用戶端應用程式針對對應結構描述 (XDR 或 XSD) 執行 XPath 查詢,這個屬性會用來指定對應結構描述的名稱。 指定的路徑可以是相對路徑 (xyz/abc/MySchema.xml) 或絕對路徑 (C:\MyFolder\abc\MySchema.xml)。 如果指定了相對路徑,則 Base Path 屬性所指定的基底路徑可用來解析相對路徑。如果 Base Path 屬性中未指定任何路徑,則相對路徑會相對於目前的目錄。 在指定 Mapping Schema 屬性的值時,您可以指定本機目錄路徑或 URL (http://...)。如果您指定 URL,您必須透過 Proxy 伺服器來設定 WinHTTP 存取 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 root |
|
這個屬性是用來定義產生之 XML 的根標記。例如,如果您針對資料庫執行 SQL 查詢,而且產生的 XML 文件沒有單一根元素,此屬性的值可用來將單一根元素加入到文件中。 如需使用這個屬性的範例,請參閱<執行 SQL 查詢 (SQLXMLOLEDB 提供者)>。 |
xsl |
|
當您想要將 XSL 轉換套用到查詢所傳回的 XML 文件時,可使用這個屬性來指定 XSL 檔案名稱。 指定的路徑可以是相對路徑 (xyz/abc/MyXSL.xsl) 或絕對路徑 (C:\MyFolder\abc\MyXSL.xsl)。 如果指定了相對路徑,則 Base Path 屬性所指定的基底路徑可用來解析相對路徑。如果 Base Path 屬性中未指定任何路徑,則相對路徑會相對於目前的目錄。 如需使用這個屬性的範例,請參閱<Applying an XSL Transformation (SQLXMLOLEDB Provider)>。 |
下表包含 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。 |