使用 ADO 執行 SQLXML 4.0 查詢

適用於:SQL ServerAzure SQL Database

在舊版的 SQLXML 中,使用 SQLXML IIS 虛擬目錄和 SQLXML ISAPI 篩選器支援 HTTP 型查詢執行。 在 SQLXML 4.0 中,這些元件已移除為類似且重迭的功能,且從 SQL Server 2005 (9.x) 開始提供原生 XML Web 服務。

或者,您可以使用 SQLXML 4.0 搭配 COM 型應用程式執行查詢並使用 SQLXML 4.0,方法是利用 Microsoft 資料存取元件 (MDAC) 2.6 和更新版本中首次推出的 ActiveX 資料物件 (ADO) 延伸模組。

本主題示範如何使用 SQLXML 和 ADO 作為 Visual Basic Scripting Edition (VBScript) 應用程式的一部分(副檔名為 .vbs 的腳本)。 它提供初始安裝程式,協助您在 SQLXML 4.0 檔中重新建立及測試查詢範例。

建立 SQLXML 4.0 測試腳本

在此程式中,您會建立 VBScript (.vbs) 檔案 Sqlxml4test.vbs,其可用來執行 SQLXML 查詢,方法是利用 ADO 2.6 和更新版本中的 SQLXML ADO 延伸模組。

若要使用 ADO 建立 SQLXML 4.0 查詢測試人員(VBScript)。

  1. 複製下列程式碼,並將它貼到文字檔中。 將檔案儲存為 Sqlxml4test.vbs。

    WScript.Echo "Query process may take a few seconds to complete. Please be patient."  
    
    ' Note that for SQL Server Native Client to be used as the data provider,  
    ' it needs to be installed on the client computer first. Also, SQLXML extensions   
    ' for ADO are used and available in MDAC 2.6 or later.  
    
    'Set script variables.  
    inputFile = "@@FILE_NAME@@"  
    strServer = "@@SERVER_NAME@@"  
    strDatabase = "@@DATABASE_NAME@@"  
    dbGuid = "{5d531cb2-e6ed-11d2-b252-00c04f681b71}"  
    
    ' Establish ADO connection to SQL Server and   
    ' create an instance of the ADO Command object.  
    Set conn = CreateObject("ADODB.Connection")  
    Set cmd = CreateObject("ADODB.Command")  
    conn.Open "Provider=SQLXMLOLEDB.4.0;Data Provider=SQLNCLI11;Server=" & strServer & _  
              ";Database=" & strDatabase & ";Integrated Security=SSPI"  
    Set cmd.ActiveConnection = conn  
    
    ' Create the input stream as an instance of the ADO Stream object.  
    Set inStream = CreateObject("ADODB.Stream")  
    inStream.Open  
    inStream.Charset = "utf-8"  
    inStream.LoadFromFile inputFile  
    
    ' Set ADO Command instance to use input stream.  
    Set cmd.CommandStream = inStream  
    
    ' Set the command dialect.  
    cmd.Dialect = dbGuid  
    
    ' Set a second ADO Stream instance for use as a results stream.   
    Set outStream = CreateObject("ADODB.Stream")  
    outStream.Open  
    
    ' Set dynamic properties used by the SQLXML ADO command instance.   
    cmd.Properties("XML Root").Value = "ROOT"  
    cmd.Properties("Output Encoding").Value = "UTF-8"  
    
    ' Connect the results stream to the command instance and execute the command.  
    cmd.Properties("Output Stream").Value = outStream  
    cmd.Execute , , 1024  
    
    ' Echo cropped/partial results to console.  
    WScript.Echo Left(outStream.ReadText, 1023)  
    
    inStream.Close  
    outStream.Close  
    
  2. 針對您嘗試測試的範例和測試環境,更新下列腳本值。

    • 尋找 @@FILE_NAME@@ 並取代為範本檔案的名稱。

    • 尋找 @@SERVER_NAME@@ 並取代為 SQL Server 實例的名稱(例如, (local) 如果 SQL Server 在本機執行)。

    • 尋找 「 @@DATABASE_NAME@@ 」,並將它取代為資料庫的名稱(例如 AdventureWorks2022tempdb )。

    如果您嘗試在本機電腦上重新建立範例的特定指示中所述,請更新任何其他值。

  3. 儲存並關閉檔案。

  4. 確認您已建立任何其他檔案,例如您嘗試在電腦上本機重新建立之範例的 XML 範本或架構。 這些檔案應該位於您已儲存測試腳本檔案的相同目錄中(Sqlxml4test.vbs)。

  5. 請遵循下一節中的指示,瞭解如何使用 SQLXML 4.0 測試腳本。

使用 SQLXML 4.0 測試腳本

下列程式說明如何使用 Sqlxml4test.vbs 檔案來測試本檔中提供的範例查詢。

若要使用 SQLXML 4.0 查詢測試人員

  1. 確認已安裝 SQL Server Native Client,如下所示:

    1. 從 [ 開始] 功能表中,指向 [ 設定 ],然後按一下 [ 控制台 ]。

    2. 在 [控制台] 中,開啟 [新增或移除程式]

    3. 在目前已安裝的程式清單中,確認 Microsoft SQL Server Native Client 出現在清單中。

      注意

      如果您需要安裝 SQL Server Native Client,請參閱 安裝 SQL Server Native Client

  2. 確認為用戶端電腦安裝的 MDAC 版本為 2.6 或更新版本。 如果您需要驗證 MDAC 版本資訊,您可以使用 MDAC 元件檢查工具,此工具可從 Microsoft 網站 http://www.microsoft.com 免費下載。 如需詳細資訊,請在 Microsoft 網站上搜尋 「MDAC 元件檢查程式」。

  3. 執行指令碼。

    您可以使用 Cscript.exe 在命令列上執行 VBScript 檔案,或按兩下 Sqlxml4test.vbs 檔案來叫用 Windows 腳本主機 (WScript.exe)。

    執行時,腳本應該會顯示訊息,以提醒您腳本可能需要幾分鐘的時間才能傳回查詢結果,並將查詢結果顯示為腳本輸出。 當輸出出現時,請比較其內容與範例的預期結果。