Compartilhar via


Usando o ADO para executar consultas do SQLXML 4.0

Aplica-se a: SQL Server Banco de Dados SQL do Azure

Nas versões anteriores do SQLXML, o suporte à execução de consultas baseadas em HTTP era oferecido por meio de diretórios virtuais IIS SQLXML e do filtro ISAPI SQLXML. No SQLXML 4.0, esses componentes foram removidos à medida que a funcionalidade semelhante e sobreposta é fornecida com os serviços Web XML nativos a partir do SQL Server 2005 (9.x).

Como alternativa, você pode executar consultas e usar o SQLXML 4.0 com seus aplicativos baseados no 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 versão posterior.

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

Criando o script de teste 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 SQLXML ADO no ADO 2.6 e posterior.

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

  1. Copie o código 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 seu 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, ou AdventureWorks2022 tempdb).

    Atualize qualquer outro valor se mencionado nas instruções específicas do exemplo que você está tentando recriar localmente em seu computador.

  3. Salve o arquivo e feche-o.

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

  5. Siga as instruções da 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 do 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 instalados no momento, 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 no computador cliente é a 2.6 ou mais recente. Se você precisar verificar as informações da versão do MDAC, poderá usar a ferramenta Verificador de Componentes do MDAC, que é fornecida para download gratuito no site da Microsoft, http://www.microsoft.com. Para obter mais informações, pesquise em "MDAC Component Checker" 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 chamar o Windows Script Host (WScript.exe).

    Durante sua execução, o script deverá exibir uma mensagem de alerta informando que poderá levar alguns minutos para ser executado antes de retornar e exibir os resultados da consulta. Quando o resultado for exibido, compare seu conteúdo com o dos resultados esperados para o exemplo.