Flujos y persistencia
El objeto Recordset método Guardar almacena o persisteun Recordset en un archivo, y el método Abrir restaura el Recordset desde ese archivo.
Con ADO 2.7 o posterior, los métodos Save y Open pueden almacenar también un Recordset en un objeto Stream. Esta característica es especialmente útil al trabajar con el servicio de datos remotos (RDS) y Active Server Pages (ASP).
Para obtener más información sobre cómo la persistencia se puede usar por sí misma en páginas ASP, consulte la documentación actual de ASP.
A continuación se presentan algunos escenarios que muestran cómo se pueden utilizar los objetos Stream y la persistencia.
Escenario 1
Este escenario simplemente guarda un Recordset en un archivo y luego en un Stream . A continuación, abre la secuencia persistente en otro Recordset.
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim stm As ADODB.Stream
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set stm = New ADODB.Stream
rs1.Open "SELECT * FROM Customers", "Provider=sqloledb;" & _
"Data Source=MyServer;Initial Catalog=Northwind;" & _
"Integrated Security=SSPI;""", adopenStatic, adLockReadOnly, adCmdText
rs1.Save "c:\myfolder\mysubfolder\myrs.xml", adPersistXML
rs1.Save stm, adPersistXML
rs2.Open stm
Escenario 2
Este escenario persiste un Recordset en un Stream en formato XML. A continuación, lee el Stream en una cadena que puede examinar, manipular o mostrar.
Dim rs As ADODB.Recordset
Dim stm As ADODB.Stream
Dim strRst As String
Set rs = New ADODB.Recordset
Set stm = New ADODB.Stream
' Open, save, and close the recordset.
rs.Open "SELECT * FROM Customers", "Provider=sqloledb;" & _
"Data Source=MyServer;Initial Catalog=Northwind;" & _
"Integrated Security=SSPI;"""
rs.Save stm, adPersistXML
rs.Close
Set rs = nothing
' Put saved Recordset into a string variable.
strRst = stm.ReadText(adReadAll)
' Examine, manipulate, or display the XML data.
...
Escenario 3
En este código de ejemplo se muestra cómo el código ASP persiste un recordset como XML directamente en el objeto Response :
...
<%
response.ContentType = "text/xml"
' Create and open a Recordset.
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "select * from Customers", "Provider=sqloledb;" & _
"Data Source=MyServer;Initial Catalog=Northwind;" & _
"Integrated Security=SSPI;"""
' Save Recordset directly into output stream.
rs.Save Response, adPersistXML
' Close Recordset.
rs.Close
Set rs = nothing
%>
...
Escenario 4
En este escenario, el código ASP escribe el contenido del conjunto de registros de en formato ADTG en el cliente. El servicio de cursor de Microsoft para OLE DB puede usar estos datos para crear un Recordset desconectado .
Una nueva propiedad en el RDS DataControl, URL, apunta a la página .asp que genera el Recordset. Esto significa que se puede obtener un objeto Recordset sin necesidad de RDS mediante el objeto DataFactory del lado del servidor o mediante un objeto de negocio escrito por el usuario. Esto simplifica significativamente el modelo de programación de RDS.
Código del lado servidor, denominado https://server/directory/recordset.asp:
<%
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "select au_fname, au_lname, phone from Authors", ""& _
"Provider=sqloledb;Data Source=MyServer;" & _
"Initial Catalog=Pubs;Integrated Security=SSPI;"
response.ContentType = "multipart/mixed"
rs.Save response, adPersistADTG
%>
Código del lado cliente:
<HTML>
<HEAD>
<TITLE>RDS Query Page</TITLE>
</HEAD>
<body>
<CENTER>
<H1>Remote Data Service 2.5</H1>
<TABLE DATASRC="#DC1">
<TR>
<TD><SPAN DATAFLD="au_fname"></SPAN></TD>
<TD><SPAN DATAFLD="au_lname"></SPAN></TD>
<TD><SPAN DATAFLD="phone"></SPAN></TD>
</TR>
</TABLE>
<BR>
<OBJECT classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID=DC1 HEIGHT=1 WIDTH = 1>
<PARAM NAME="URL" VALUE="https://server/directory/recordset.asp">
</OBJECT>
</SCRIPT>
</BODY>
</HTML>
Los desarrolladores también tienen la opción de usar un objeto Recordset de en el cliente:
...
function GetRs()
{
rs = CreateObject("ADODB.Recordset");
rs.Open "https://server/directory/recordset.asp"
DC1.SourceRecordset = rs;
}
...
Consulte también
Método Open (Recordset de ADO)
Objeto Record (ADO)
Método Guardar