ID do artigo: 263247 - Última revisão: quinta-feira, 1 de julho de 2004 - Revisão: 5.4

Como obter um Recordset ADO a partir do XML

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sumário

Se você tiver uma seqüência de caracteres XML ou documento, você pode usá-lo para abrir um recordset ADO (ActiveX Data Objects). Você pode fazer isso usando o objeto Microsoft ADO 2.5 Stream e novos recursos de integração do XML do ADO.

Este artigo descreve o mecanismo necessário para carregar o seguinte em um ADO 2.5 conjunto de registros:
  • Uma seqüência contendo XML.

    - e -

  • Uma instância do documento DOM do XML.
Contanto que os dados XML estiverem no formato em que o conjunto de registros ADO pode aceitar.

Mais Informações

Para abrir uma seqüência de caracteres XML como um conjunto de registros, use o código que segue. Verifique se seu projeto Visual Basic tem as referências apropriadas para a Biblioteca do Microsoft ActiveX Data Access Components 2.5 para que ADO pode ser usado como mostrado.

código de exemplo
Public Function RecordsetFromXMLString(sXML As String) As Recordset

    Dim oStream As ADODB.Stream
    Set oStream = New ADODB.Stream
    
    oStream.Open
    oStream.WriteText sXML   'Give the XML string to the ADO Stream

    oStream.Position = 0    'Set the stream position to the start

    Dim oRecordset As ADODB.Recordset
    Set oRecordset = New ADODB.Recordset
       
    oRecordset.Open oStream    'Open a recordset from the stream

    oStream.Close
    Set oStream = Nothing

    Set RecordsetFromXMLString = oRecordset  'Return the recordset

    Set oRecordset = Nothing

End Function
Observe que o código anterior aceita um String.


O código a seguir aceita um objeto DOM como a fonte para o conjunto de registros. Observe que o objeto Stream não é necessário:

Public Function RecordsetFromXMLDocument(XMLDOMDocument As DOMDocument) As Recordset
    Dim oRecordset As ADODB.Recordset
    
    Set oRecordset = New ADODB.Recordset
       
    oRecordset.Open XMLDOMDocument 'pass the DOM Document instance as the Source argument

    Set RecordsetFromXMLDocument = oRecordset  'return the recordset

    Set oRecordset = Nothing

End Function
Após abrir o conjunto de registros em qualquer uma das seguintes maneiras, você pode usar o conjunto de registros como qualquer outro recordset desconectado.

Observe que a posição atual, AbsolutePage e outras propriedades de navegação não são armazenadas no XML do documento; portanto, o conjunto de registros recém-aberto está sempre posicionado na primeira linha.

Referências

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
309702  (http://support.microsoft.com/kb/309702/EN-US/ ) Como ler dados XML em um DataSet usando o Visual Basic .NET
Para obter mais informações sobre ADO, consulte o seguinte site:
http://msdn.microsoft.com/en-us/data/aa937729.aspx (http://msdn.microsoft.com/en-us/data/aa937729.aspx)
(c) Microsoft Corporation 2000, todos os direitos reservados. Contribuições de Edward a. Jezierski, Microsoft Corporation.


A informação contida neste artigo aplica-se a:
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
  • Microsoft XML Core Services 4.0
  • Microsoft XML Parser 2.5
  • Microsoft XML Parser 2.6
  • Microsoft XML Parser 3.0
Palavras-chave: 
kbmt kbcodesnippet kbhowto KB263247 KbMtpt
Tradução automáticaTradução automática
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.
Clique aqui para ver a versão em Inglês deste artigo: 263247  (http://support.microsoft.com/kb/263247/en-us/ )