Compartilhar via


Usando o ADO para executar consultas SQLXML 4.0

Nas versões anteriores do SQLXML, a execução de consulta baseada em HTTP tinha suporte usando diretórios virtuais do IIS SQLXML e o filtro ISAPI SQLXML. No SQLXML 4.0, esses componentes foram removidos como funcionalidade semelhante e sobreposta é fornecida com serviços Web XML nativos a partir do SQL Server 2005.

Como alternativa, você pode executar consultas e usar o SQLXML 4.0 com seus aplicativos baseados em COM, aproveitando as extensões SQLXML para ADO (ActiveX Data Objects) que foram introduzidas pela primeira vez no Microsoft Data Access Components (MDAC) 2.6 e posterior.

Este tópico demonstra como usar SQLXML e ADO como parte de um aplicativo VBScript (Visual Basic Scripting Edition) (um script com a extensão de arquivo .vbs). Ele fornece procedimentos iniciais de instalação para ajudá-lo a recriar e testar exemplos de consulta na documentação do SQLXML 4.0.

Criando o script de teste do SQLXML 4.0

Neste procedimento, você cria um arquivo VBScript (.vbs), Sqlxml4test.vbs, que pode ser usado para executar consultas SQLXML aproveitando as extensões do ADO SQLXML no ADO 2.6 e posterior.

Para criar o testador de consulta SQLXML 4.0 usando o ADO (VBScript).

  1. Copie o código VBScript abaixo e cole-o em um arquivo de texto. Salve o arquivo 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. Atualize os valores de script a seguir para o exemplo que você está tentando testar e seu ambiente de teste.

    • Localize "@@FILE_NAME@@" e substitua-o pelo nome do arquivo de modelo.

    • Localize "@@SERVER_NAME@@" e substitua-o pelo nome da instância do SQL Server (por exemplo, "(local)" se o SQL Server estiver sendo executado localmente).

    • Localize "@@DATABASE_NAME@@" e substitua-o pelo nome do banco de dados (por exemplo, "AdventureWorks2012" ou "tempdb").

    Atualize outros valores se mencionados nas instruções específicas para o exemplo que você está tentando recriar localmente em seu computador.

  3. Salve o arquivo e feche-o.

  4. Verifique se você criou arquivos adicionais, como modelos XML ou esquemas que fazem parte do exemplo que você está tentando recriar localmente em seu computador. Esses arquivos devem estar localizados no mesmo diretório em que você salvou o arquivo de script de teste (Sqlxml4test.vbs).

  5. Siga as instruções na próxima seção sobre como usar o script de teste SQLXML 4.0.

Usando o script de teste SQLXML 4.0

O procedimento a seguir descreve como usar os arquivos Sqlxml4test.vbs para testar as consultas de exemplo fornecidas nesta documentação.

Para usar o testador de consulta SQLXML 4.0

  1. Verifique se o SQL Server Native Client está instalado, da seguinte maneira:

    1. No menu Iniciar , aponte para Configurações e clique em Painel de Controle.

    2. No Painel de Controle, abra Adicionar ou Remover Programas

    3. Na lista de programas atualmente instalados, verifique se o Microsoft SQL Server Native Client aparece na lista.

      Observação

      Se você precisar instalar o SQL Server Native Client, consulte Instalando o SQL Server Native Client.

  2. Verifique se a versão do MDAC instalada para o computador cliente é 2.6 ou posterior. Se você precisar verificar as informações de versão do MDAC, poderá usar a ferramenta Verificador de Componentes do MDAC, que é fornecida como download gratuito do site https://www.microsoft.com/da Microsoft. Para obter mais informações, pesquise no "Verificador de Componentes do MDAC" no site da Microsoft.

  3. Execute o script.

    Você pode executar o arquivo VBScript na linha de comando usando Cscript.exe ou clicando duas vezes no arquivo Sqlxml4test.vbs para invocar o Host de Script do Windows (WScript.exe).

    Quando executado, o script deve exibir uma mensagem para alertá-lo de que o script pode levar alguns instantes para ser executado antes de retornar e exibir os resultados da consulta como saída de script. Quando a saída for exibida, compare seu conteúdo com os resultados esperados para o exemplo.