Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0

Dans les versions antérieures de SQLXML, l'exécution de requêtes basées sur le protocole HTTP était prise en charge à l'aide de répertoires virtuels IIS SQLXML et du filtre ISAPI SQLXML. Dans SQLXML 4.0, ces composants ont été supprimés du fait que des fonctionnalités semblables et se chevauchant sont fournies avec les services Web XML natifs à compter de SQL Server 2005.

Vous pouvez également exécuter des requêtes et utiliser SQLXML 4.0 avec vos applications COM en exploitant les extensions SQLXML aux objets ADO (ActiveX Data Objects) qui ont été introduites dans Microsoft Data Access Components (MDAC) 2.6 et versions ultérieures.

Cette rubrique montre comment utiliser SQLXML et ADO dans le cadre d'une application Visual Basic Scripting Edition (VBScript), c'est-à-dire un script avec l'extension de fichier .vbs. Elle fournit des procédures d'installation initiale pour vous aider à recréer et à tester des exemples de requête dans la documentation SQLXML 4.0.

Création du script de test SQLXML 4.0

Dans cette procédure, vous créez un fichier VBScript (.vbs), Sqlxml4test.vbs, qui peut être utilisé pour exécuter des requêtes SQLXML en exploitant les extensions ADO SQLXML dans ADO 2.6 et versions ultérieures.

Pour créer le testeur de requêtes SQLXML 4.0 à l'aide d'ADO (VBScript)

  1. Copiez le code ci-dessous et collez-le dans un fichier texte. Enregistrez le fichier sous 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. Mettez à jour les valeurs de script suivantes pour l'exemple que vous essayez de tester et votre environnement de test.

    • Recherchez "@@FILE_NAME@@" et remplacez-le par le nom de votre fichier modèle.

    • Recherchez "@@SERVER_NAME@@" et remplacez-le par le nom de votre instance de SQL Server (par exemple, "(local)" si SQL Server s'exécute localement).

    • Recherchez "@@DATABASE_NAME@@" et remplacez-le par le nom de la base de données (par exemple "AdventureWorks2008R2" ou "tempdb").

    Mettez à jour toute autre valeur mentionnée dans les instructions spécifiques pour l'exemple que vous essayez de recréer localement sur votre ordinateur.

  3. Enregistrez le fichier et fermez-le.

  4. Vérifiez que vous avez créé tous les fichiers supplémentaires, tels que des modèles ou des schémas XML qui font partie de l'exemple que vous essayez de recréer localement sur votre ordinateur. Ces fichiers doivent se trouver dans le répertoire où vous avez enregistré le fichier script de test (Sqlxml4test.vbs).

  5. Suivez les instructions dans la section suivante pour savoir comment utiliser le script de test SQLXML 4.0.

Utilisation du script de test SQLXML 4.0

La procédure suivante décrit comment utiliser les fichiers Sqlxml4test.vbs pour tester les exemples de requêtes fournis dans cette documentation.

Pour utiliser le testeur de requêtes SQLXML 4.0

  1. Vérifiez que SQL Server Native Client est installé, comme suit :

    1. Dans le menu Démarrer, pointez sur Paramètres, puis cliquez sur Panneau de configuration.

    2. Dans le Panneau de configuration, ouvrez Ajout/Suppression de programmes.

    3. Dans la liste des programmes actuellement installés, vérifiez que Microsoft SQL Server Native Client figure dans la liste.

      Notes

      Si vous avez besoin d'installer SQL Server Native Client, consultez Installation de SQL Server Native Client.

  2. Vérifiez que MDAC 2.6 ou version ultérieure est installée sur l'ordinateur client. Pour Windows XP et Windows Server 2003, ce problème ne se pose pas. Si vous avez besoin de vérifier les informations de version de MDAC, vous pouvez télécharger gratuitement l'outil MDAC Component Checker sur le site Web de Microsoft (www.microsoft.com). Pour plus d'informations, recherchez « MDAC Component Checker » sur le site Web de Microsoft.

  3. Exécutez le script.

    Vous pouvez exécuter le fichier VBScript à la ligne de commande à l'aide de Cscript.exe ou en double-cliquant sur le fichier Sqlxml4test.vbs pour appeler l'environnement d'exécution de scripts WSH (Windows Script Host) (WScript.exe).

    Lorsqu'il est exécuté, le script doit afficher un message pour vous alerter que l'exécution du script peut prendre quelques instants avant de retourner et d'afficher les résultats de la requête en tant que sortie de script. Quand la sortie s'affiche, comparez son contenu aux résultats attendus pour l'exemple.