Help and Support
 

powered byLive Search

How To Obtain an ADO Recordset from XML

Article ID:263247
Last Review:July 1, 2004
Revision:5.4
This article was previously published under Q263247

SUMMARY

If you have an XML string or document you may use it to open an ActiveX Data Objects (ADO) recordset. You can do this by using the Microsoft ADO 2.5 Stream object and the new XML integration features in ADO.

This article describes the mechanism required to load the following into an ADO 2.5 recordset:
A string containing XML.

-and-

An XML DOM Document instance.
Provided the XML data is in the format where ADO recordset can accept.

Back to the top

MORE INFORMATION

To open an XML string as a recordset, use the code that follows. Make sure that your Visual Basic project has the appropriate references to the Microsoft ActiveX Data Access Components 2.5 Library so that ADO can be used as shown.

Sample Code
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
Please note that the preceding code accepts a String.


The following code accepts a DOM object as the source for the recordset. Note that the Stream object is not needed:

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
After you open the recordset in any of these ways, you can use the recordset as any other disconnected recordset.

Note that the current position, AbsolutePage and other navigation properties are not stored in the XML document; therefore, the newly opened recordset is always positioned at the first row.

Back to the top

REFERENCES

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
309702 (http://support.microsoft.com/kb/309702/EN-US/) How To Read XML Data into a DataSet by Using Visual Basic .NET
For more information about ADO, see to the following Web site:
http://msdn.microsoft.com/en-us/data/aa937729.aspx (http://msdn.microsoft.com/en-us/data/aa937729.aspx)
(c) Microsoft Corporation 2000, All Rights Reserved. Contributions by Edward A. Jezierski, Microsoft Corporation.

Back to the top


APPLIES TO
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

Back to the top

Keywords: 
kbcodesnippet kbhowto KB263247

Back to the top

Article Translations

 

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.