Entrar

Como recuperar dados XML com um arquivo de modelo de um cliente do Visual Basic

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

271621
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este exemplo neste artigo demonstra como recuperar um documento XML do SQL Server 2000 usando um arquivo de modelo que contém parâmetros. Mais especificamente, uma consulta é emitida no SQL Server 2000 usando um fluxo de comando do ActiveX Data Objects (ADO) 2.6. Esta consulta busca o XML DataStream .

Este exemplo lê o arquivo de modelo "products.xml" do disco e define o texto de comando para o objeto ADODB.Command para a consulta executar.

Você deve definir as seguintes propriedades da coleção Properties do objeto ADODB.Command :
  • caminho base . Esta propriedade estabelece o local dos arquivos XSL (linguagem de folha de estilo extensível) e o modelo.
  • fluxo de saída . Essa propriedade designa onde o fluxo de dados XML resultante será ser enviada por pipe.
  • dialeto . O dialeto define a sintaxe e as regras gerais que usa o provedor para analisar a seqüência de caracteres ou o fluxo. Definindo o dialeto de linguagem de comando, você especifica como o Microsoft OLE DB Provider para SQL Server interpreta o texto de comando que é recebido do ADO. O dialeto é especificado por um identificador globalmente exclusivo (GUID) e é definido usando a propriedade dialeto do objeto Command .
  • XSL . Essa propriedade transforma o documento XML.
Observação : fluxo de saída pode ser qualquer objeto que oferece suporte a uma interface IStream ou ISequentialStream . Objetos que ofereçam suporte as interfaces de IStream são o objeto ADODB.Stream , o objeto de resposta de serviços de informações da Internet (IIS) 5.0 e um objeto do Microsoft XML (MSXML) DomDocument .
Mais Informações
  1. Crie um novo projeto Standard EXE no Visual Basic. O Form1 é criado por padrão.
  2. No menu Project , clique em componentes e adicione uma referência ao Microsoft Internet Controls e Microsoft ActiveX Data Objects 2.6 .
  3. Adicionar um navegador da Web para o formulário, nomeá-la WebBrowser1 e, em seguida, dimensione-o da mesma forma.
  4. Adicione um quadro para o formulário e coloque dois botões de opção nela. Nome do primeiro botão optXSLYes com a legenda XSL Sim e nomeie o segundo botão optXSLNo com a legenda Não XSL .
  5. Adicione dois botões de comando. Nomeie o primeiro botão cmdTestIt com o título Test e nomeie o segundo botão cmdExitProgram com a legenda Sair .
  6. Cole o código do Visual Basic a seguir na janela de código do formulário:
    Option ExplicitConst DBGUID_DEFAULT As String = "{C8B521FB-5CF3-11CE-ADE5-00AA0044773D}" Private Sub cmdExitProgram_Click()    Unload Me    EndEnd SubPrivate Sub cmdTestIt_Click()    Dim cn As New ADODB.Connection    Dim cmd As New ADODB.Command    Dim cmdStream As New ADODB.Stream    Dim cmdOutput As New ADODB.Stream    Dim txtOutputFileName As String        ' open the database connection     cn.Open "provider=sqloledb;data source=.;initial catalog=northwind;uid=sa;pwd="        ' open the command stream that will eventually contain the templated query    cmdStream.Open    ' set the character set to ascii    cmdStream.Charset = "ascii"    ' set the command stream type to text, not binary.    cmdStream.Type = adTypeText    ' read the template file from disk into the command stream to execute    cmdStream.LoadFromFile App.Path & "\products.xml"    ' set the command connection    Set cmd.ActiveConnection = cn    ' set the command's command stream to hook the template query to the command you want to run.    Set cmd.CommandStream = cmdStream    ' set the command dialect    cmd.Dialect = DBGUID_DEFAULT    ' open the output stream to receive the results for the command execute.    cmdOutput.Open    ' set the base path for where the template file resides.     ' Currently, this must point to a file on disk. Remote templates via    ' http://...template.xml" are not allowed.    cmd.Properties("Base Path") = App.Path    ' set up the output stream that will receive the output of the command execute.    cmd.Properties("Output Stream") = cmdOutput        ' set the XSL to process if the user requested the output to be fixed.    If optXSLYes Then        ' set the file name for the XSL: this inherits the "base path" setting        cmd.Properties("XSL") = "products.xsl"        ' set the file extension to ".htm", mainly so the Web browser displays        ' set the output as a table.   Try with a ".xml" extension... what is displayed?        txtOutputFileName = App.Path & "\queryout.htm"    Else        txtOutputFileName = App.Path & "\queryout.xml"    End If    ' execute the command stream with the settings specified above.    cmd.Execute , , adExecuteStream    ' position the stream back to the beginning: the "file position" in the     'stream will be at the end of the stream.  Writing to a stream will append    'on the end and only while the output from the command execute generates.    cmdOutput.Position = 0    'save the output to a file, this is only needed to use the navigate on the Web browser control    cmdOutput.SaveToFile txtOutputFileName, adSaveCreateOverWrite    ' Navigate/display the results of the command executes.    WebBrowser1.Navigate txtOutputFileName        ' close and clean-up the objects used.    cmdOutput.Close    cmdStream.Close    cn.Close        Set cmdOutput = Nothing    Set cmdStream = Nothing    Set cmd = Nothing    Set cn = Nothing    End Sub					
  7. Para criar um arquivo de modelo, crie um novo arquivo de texto, cole o seguinte modelo para o arquivo e, em seguida, salve-o com um nome de products.xml:
    <?xml version='1.0' ?>          <root xmlns:sql="urn:schemas-microsoft-com:xml-sql">    <sql:header>        <sql:param name="ProdName">%</sql:param>    </sql:header>    <sql:query>        SELECT      *        FROM        Products        WHERE       ProductName like '%' + @ProdName + '%'        ORDER BY    ProductName                             FOR XML AUTO    </sql:query></root> 					
  8. Como opção, crie um arquivo chamado products.xsl com o seguinte código para transformar a saída:
    <?xml version='1.0' ?>          <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">    <xsl:template match="/">        <html>            <head>                <title>MSDN ADO Product Sample with SQL Server 2000 Features</title>                <base href="http://localhost/3tier/" />            </head>            <body>                <table border="0" cellPadding="1" cellSpacing="1"                 width="100%"                  style="COLOR:black;FONT-FAMILY:Arial;FONT-SIZE:12pt.;FONT-WEIGHT:500">                <tr bgColor="#336699" align="center">                    <TD><P ><STRONG><FONT color="white" size="2">Product ID:</FONT></STRONG></P></TD>                    <TD><P ><STRONG><FONT color="white" size="2">Product Name:</FONT></STRONG></P></TD>                    <TD><P ><STRONG><FONT color="white" size="2">Unit Price:</FONT></STRONG></P></TD>                    <TD><P ><STRONG><FONT color="white" size="2">Units In Stock:</FONT></STRONG></P></TD>                    <TD><P ><STRONG><FONT color="white" size="2">Restock Level:</FONT></STRONG></P></TD>                    <TD><P ><FONT color="white" size="2"><STRONG>Units On Order:</STRONG></FONT></P></TD>                </tr>                                                <xsl:for-each select="root/Products">                    <tr style="COLOR: black; FONT-FAMILY: Arial; FONT-SIZE: 0.8em; FONT-WEIGHT: 500">                        <td bgColor="#F0F0F0"><xsl:value-of select="@ProductID"/></td>                        <td bgColor="#F0F0F0"><xsl:value-of select="@ProductName"/></td>                        <td bgColor="#F0F0F0"><xsl:value-of select="@UnitPrice"/></td>                        <td bgColor="#F0F0F0"><xsl:value-of select="@UnitsInStock"/></td>                        <td bgColor="#F0F0F0"><xsl:value-of select="@ReorderLevel"/></td>                        <td bgColor="#F0F0F0"><xsl:value-of select="@UnitsOnOrder"/></td>                    </tr>                </xsl:for-each>                </table>            </body>         </html>    </xsl:template></xsl:stylesheet>					
Referências
Para obter mais informações sobre o SQL Server 2000, consulte os manuais online do SQL Server.

Para obter mais informações em XML, visite o seguinte site: Para obter mais informações sobre XML, visite o seguinte site da World Wide Web Consortium (W3C):

Warning: This article has been translated automatically

Propriedades

ID do Artigo: 271621 - Última Revisão: 02/23/2014 22:17:56 - Revisão: 2.5

  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft XML Parser 2.6
  • Microsoft XML Parser 3.0
  • Microsoft XML Core Services 4.0
  • kbnosurvey kbarchive kbmt kbhowto KB271621 KbMtpt
Comentários