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

Anwendungsbereich:yesSQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank

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 wurden diese Komponenten als ähnliche und überlappende Funktionen entfernt, die mit systemeigenen XML-Webdiensten ab SQL Server 2005 (9.x) 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.

In diesem Thema wird die Verwendung von SQLXML und ADO als Teil einer Visual Basic Scripting Edition (VBScript)-Anwendung (ein Skript mit der Dateinamenerweiterung VBS) veranschaulicht. 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=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. 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 "@@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 "AdventureWorks2012" 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 Sie die Datei, und schließen Sie sie.

  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. Vergewissern Sie sich, dass SQL Server Native Client wie folgt installiert ist:

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

    2. Öffnen Sie in Systemsteuerung "Programme hinzufügen oder entfernen"

    3. Überprüfen Sie in der Liste der aktuell installierten Programme, ob Microsoft SQL Server nativer Client in der Liste angezeigt wird.

      Hinweis

      Wenn Sie SQL Server Native Client installieren müssen, lesen Sie "Installieren SQL Server Native Client".

  2. Überprüfen Sie, ob die für den Clientcomputer installierte MDAC-Version 2.6 oder höher ist. Wenn Sie MDAC-Versionsinformationen überprüfen müssen, können Sie das MDAC Component Checker-Tool verwenden, das als kostenloser Download von der Microsoft-Website http://www.microsoft.combereitgestellt wird. 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.