Compartir vía


Utilizar ADO para ejecutar consultas SQLXML 4.0

Se aplica a: SQL ServerAzure SQL Database

En versiones anteriores de SQLXML, la ejecución de consultas basadas en HTTP se admitía mediante la utilización de directorios virtuales de SQLXML IIS y el filtro SQLXML ISAPI. En SQLXML 4.0, estos componentes se han quitado como funcionalidades similares y superpuestas con servicios web XML nativos a partir de SQL Server 2005 (9.x).

Como alternativa, puede ejecutar consultas y utilizar SQLXML 4.0 con las aplicaciones basadas en COM si aprovecha las extensiones SQLXML a Objetos de datos ActiveX (ADO) que se introdujeron por primera vez en Microsoft Data Access Components (MDAC) 2.6 y versiones posteriores.

En este tema se muestra el uso de SQLXML y ADO como parte de una aplicación de Visual Basic Scripting Edition (VBScript) (un script con la extensión de nombre de archivo .vbs). También se proporcionan los procedimientos de configuración iniciales que le ayudarán a volver a crear y probar ejemplos de consulta de la documentación de SQLXML 4.0.

Crear el script de prueba de SQLXML 4.0

En este procedimiento, crea un archivo VBScript (.vbs), Sqlxml4test.vbs, que se puede utilizar para ejecutar consultas SQLXML aprovechando las extensiones ADO de SQLXML en ADO 2.6 y versiones posteriores.

Para crear el evaluador de consultas de SQLXML 4.0 mediante ADO (VBScript).

  1. Copie el código siguiente y péguelo en un archivo de texto. Guarde el archivo como 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. Actualice los siguientes valores de script para obtener el ejemplo que está intentando probar y su entorno de pruebas.

    • Busque @@FILE_NAME@@ y reemplácelo por el nombre del archivo de plantilla.

    • Busque @@SERVER_NAME@@ y reemplácelo por el nombre de la instancia de SQL Server (por ejemplo, (local) si SQL Server se ejecuta localmente).

    • Busque "@@DATABASE_NAME@@" y reemplácelo por el nombre de la base de datos (por ejemplo, o AdventureWorks2022 tempdb).

    Actualice cualquier otro valor si se menciona en las instrucciones concretas del ejemplo que intenta volver a crear localmente en el equipo.

  3. Guarde el archivo y ciérrelo.

  4. Compruebe que ha creado los archivos adicionales, como esquemas o plantillas XML que forman parte del ejemplo que intenta volver a crear localmente en el equipo. Estos archivos deben estar incluidos en el mismo directorio donde se ha guardado el archivo de script de prueba (Sqlxml4test.vbs).

  5. Siga las instrucciones de la sección siguiente sobre cómo utilizar el script de prueba de SQLXML 4.0.

Utilizar el script de prueba de SQLXML 4.0

El procedimiento siguiente describe cómo utilizar los archivos Sqlxml4test.vbs probar las consultas de ejemplo incluidas en esta documentación.

Para utilizar el evaluador de consultas de SQLXML 4.0

  1. Compruebe que SQL Server Native Client está instalado, como se indica a continuación:

    1. En el menú Inicio, seleccione Configuración y, a continuación, haga clic en Panel de control.

    2. En Panel de control, abra Agregar o quitar programas.

    3. En la lista de programas instalados actualmente, compruebe que Microsoft SQL Server Native Client aparece en la lista.

      Nota:

      Si necesita instalar SQL Server Native Client, consulte Instalación de SQL Server Native Client.

  2. Compruebe que la versión de MDAC instalada en el equipo cliente es la versión 2.6 o posterior. Si necesita comprobar la información de la versión de MDAC, puede usar la herramienta Comprobador de componentes de MDAC, que se proporciona como descarga gratuita desde el sitio web de Microsoft, http://www.microsoft.com. Para obtener más información, busque "MDAC Component Checker" en el sitio web de Microsoft.

  3. Ejecute el script.

    Puede ejecutar el archivo VBScript en la línea de comandos utilizando Cscript.exe o haciendo doble clic en el archivo Sqlxml4test.vbs para invocar Windows Script Host (WScript.exe).

    Al ejecutarlo, el script debe mostrar un mensaje para advertir que puede tardar unos momentos en ejecutarse antes de devolver y mostrar los resultados de consulta como salida del script. Cuando aparezca el resultado, compare su contenido con los resultados esperados del ejemplo.