Working With Streams
In the above examples, we have been saving information to data files. It's likely that you will not want to do this for most of your applications. Instead, you can work directly with data streams that can pass the data into a DOM object or pass it back to the client in an ASP Response object. Now we'll look at an example that shows how we can use a stream to place the data directly into the DOM objects.
This example will load data from a text file and place it into an ADO Stream object. The data will then be loaded into a DOM object. Once you have the data in the DOM object, you can do almost anything you want to it, including transforming it with XSL. To place the data into an ADO Stream object, add another command button to the form. Name it cmdStream with a caption Stream and add the following code to the click event handler of the command button cmdStream:
Private Sub cmdStream _Click()
Dim objNWRecordset As ADODB.Recordset
Dim objADOStream As ADODB.Stream
Dim objDOM As DOMDocument
Dim strXML As String
Dim objNWConnection As ADODB.Connection
Set objADOStream = New ADODB.Stream
Set objDOM = New DOMDocument
Set objNWRecordset = New ADODB.Recordset
Set objNWConnection = New ADODB.Connection
objNWConnection.CursorLocation = adUseClient
'You will need to replace IES-FUJI with the appropriate data
'source in the following statement.
objNWConnection.Open _
"Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _
"Persist Security Info=False;" & _
"User ID=sa;Initial Catalog=Northwind;Data Source=IES-FUJI"
objNWRecordset.CursorLocation = adUseClient
objNWRecordset.CursorType = adOpenStatic
Set objNWRecordset.ActiveConnection = objNWConnection
objNWRecordset.Open "Products"
objADOStream.Open
objNWRecordset.Save objADOStream, adPersistXML
strXML = objADOStream.ReadText
objDOM.loadXML strXML
End Sub
|
Just as in our other examples, this code creates an ADO Connection object and a Recordset object. Once the connection to the Northwind Traders database has been made and the recordset contains the data from the Products table, the XML data is saved to an ADO Stream object called objADOStream. The information is passed from the ADO Stream object to a string variable called strXML, and then the XML data is placed into a DOM document object called objDOM using the loadXML method of the document object. In this way, we have opened data from a regular database and passed the data as XML into a DOM document object.
As you can see, the ADO recordset is versatile and can be used on both the client and the server to build powerful data access components in distributed applications.