Verwenden von ADO zum Ausführen von SQLXML 4.0-Abfragen

In früheren Versionen von SQLXML wurde die HTTP-basierte Abfrageausführung mit virtuellen SQLXML IIS-Verzeichnissen und dem SQLXML ISAPI-Filter unterstützt. In SQLXML 4.0 sind diese Komponenten nicht mehr verfügbar, da ähnliche und überlappende Funktionen mit systemeigenen Web-Diensten ab SQL Server 2005 bereitgestellt werden.

Als Alternative können Sie Abfragen ausführen und SQLXML 4.0 mit Ihren COM-basierten Anwendungen verwenden, indem Sie die SQLXML-Erweiterungen für ActiveX Data Objects (ADO) nutzen, die in Microsoft Data Access Components (MDAC) 2.6 eingeführt wurden.

Dieses Thema veranschaulicht die Verwendung von SQLXML und ADO als Bestandteile einer VBScript-Anwendung (Visual Basic Scripting Edition, ein Skript mit der Dateierweiterung VBS). Es enthält erste Setupschritte, die Ihnen helfen, Abfragebeispiele in der SQLXML 4.0-Dokumentation erneut zu erstellen und zu testen.

Erstellen des SQLXML 4.0-Testskripts

In diesem Schritt erstellen Sie eine VBScript-Datei (VBS), Sqlxml4test.vbs, mit der SQLXML-Abfragen durch Nutzen der SQLXML ADO-Erweiterungen in ADO 2.6 und höher ausgeführt werden können.

So erstellen Sie den SQLXML 4.0-Abfragetester mit ADO (VBScript)

  1. Kopieren Sie den unten stehenden Code, und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei unter dem Dateinamen 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=SQLNCLI10;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. Aktualisieren Sie die folgenden Skriptwerte für das Beispiel, das Sie testen möchten, sowie die Testumgebung.

    • Suchen Sie den Namen "@@FILE_NAME@@", und ersetzen Sie ihn durch den Namen der Vorlagendatei.

    • Suchen Sie den Namen "@@SERVER_NAME@@", und ersetzen Sie ihn durch den Namen Ihrer SQL Server-Instanz (z. B. "(local)", wenn SQL Server lokal ausgeführt wird).

    • Suchen Sie den Namen "@@DATABASE_NAME@@", und ersetzen Sie ihn durch den Namen der Datenbank (z. B. entweder "AdventureWorks2008R2" oder "tempdb").

    Aktualisieren Sie ggf. andere Werte, sofern dies in den entsprechenden Anweisungen für das Beispiel angegeben ist, das Sie lokal auf dem Computer neu erstellen möchten.

  3. Speichern und schließen Sie die Datei.

  4. Überprüfen Sie, ob Sie zusätzliche Dateien wie XML-Vorlagen oder Schemas erstellt haben, die zu dem Beispiel gehören, das Sie lokal auf dem Computer neu erstellen möchten. Diese Dateien sollten sich in dem gleichen Verzeichnis befinden wie die Testskriptdatei (Sqlxml4test.vbs).

  5. Folgen Sie den Anweisungen im nächsten Abschnitt zur Verwendung des SQLXML 4.0-Testskripts.

Verwenden des SQLXML 4.0-Testskripts

Im folgenden Verfahren wird beschrieben, wie Sie die Sqlxml4test.vbs-Dateien zum Testen der in dieser Dokumentation enthaltenen Beispielabfragen verwenden.

So verwenden Sie den SQLXML 4.0-Abfragetester

  1. Überprüfen Sie, ob SQL Server Native Client installiert ist. Gehen Sie dazu wie folgt vor:

    1. Zeigen Sie im Menü Start auf Einstellungen, und klicken Sie dann auf Systemsteuerung.

    2. Öffnen Sie in der Systemsteuerung Software.

    3. Stellen Sie sicher, dass Microsoft SQL Server Native Client in der Liste der derzeit installierten Programme angezeigt wird.

      HinweisHinweis

      Informationen zum Installieren von SQL Server Native Client finden Sie unter Installieren von SQL Server Native Client.

  2. Überprüfen Sie, ob die für den Clientcomputer installierte MDAC-Version 2.6 oder höher ist. Unter Windows XP und Windows Server 2003 ist dies unerheblich. Zum Überprüfen der Versionsinformationen von MDAC können Sie das MDAC Component Checker-Tool verwenden, das Sie kostenlos von der Microsoft-Website (www.microsoft.com) herunterladen können. Weitere Informationen finden Sie auf der Microsoft-Website unter dem Suchbegriff "MDAC Component Checker".

  3. Führen Sie das Skript aus.

    Sie können die VBScript-Datei entweder an der Befehlszeile mit Cscript.exe oder durch Doppelklicken auf die Sqlxml4test.vbs-Datei ausführen, um Windows Script Host (WScript.exe) aufzurufen.

    Bei der Ausführung sollte das Skript eine Meldung mit dem Hinweis anzeigen, dass die Ausführung des Skripts eine Weile in Anspruch nehmen kann, bevor Abfrageergebnisse als Skriptausgabe zurückgegeben und angezeigt werden. Wenn die Ausgabe angezeigt wird, vergleichen Sie den Inhalt mit den für das Beispiel erwarteten Ergebnissen.