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 では、代わりに Microsoft Data Access Components (MDAC) 2.6 以降で最初に導入された ADO (ActiveX Data Objects) への SQLXML 拡張を使用して、COM ベースのアプリケーションで SQLXML 4.0 を使用してクエリを実行することができます。

このトピックでは、Visual Basic Scripting Edition (VBScript) アプリケーション (.vbs ファイル名拡張子を持つスクリプト) の一部として SQLXML と ADO を使用する方法について説明します。 SQLXML 4.0 のドキュメントにあるサンプル クエリを作成しテストするときには、ここで紹介する最初の設定手順を参考にしてください。

SQLXML 4.0 テスト スクリプトの作成

ここでは、VBScript (.vbs) ファイル Sqlxml4test.vbs を作成します。このファイルを使用すると、ADO 2.6 以降の SQLXML ADO 拡張を使用して SQLXML クエリを実行できます。

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@@検索し、データベースの名前に置き換えます (たとえば、いずれか AdventureWorks2022 または tempdb)。

    ローカル コンピューターに作成するサンプル用の具体的な指示に従って、必要であれば他の値も更新します。

  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 のバージョン情報を確認する必要がある場合は、Microsoft Web サイト http://www.microsoft.comから無料でダウンロードできる MDAC コンポーネント チェッカー ツールを使用できます。 詳細については、Microsoft の Web サイトで "MDAC Component Checker" を検索してください。

  3. スクリプトを実行します。

    VBScript ファイルを実行するには、コマンド ラインで Cscript.exe を指定するか、Sqlxml4test.vbs ファイルをダブルクリックして Windows Script Host (WScript.exe) を呼び出します。

    スクリプトを実行すると、警告メッセージが表示され、返されたクエリの結果を出力として表示するまでには時間がかかる場合があることが示されます。 出力が表示されたら、サンプルの結果例と内容を比較します。