Aliran dan Persistensi

Objek RecordsetMenyimpan metode menyimpan, atau bertahan, Recordset dalam file, dan metode Buka memulihkan Recordset dari file tersebut.

Dengan ADO 2.7 atau yang lebih baru, metode Simpan dan Buka juga dapat mempertahankan Recordset ke objek Stream . Fitur ini sangat berguna saat bekerja dengan Remote Data Service (RDS) dan Active Server Pages (ASP).

Untuk informasi selengkapnya tentang bagaimana persistensi dapat digunakan dengan sendirinya di halaman ASP, lihat dokumentasi ASP saat ini.

Berikut ini adalah beberapa skenario yang menunjukkan bagaimana objek Stream dan persistensi dapat digunakan.

Skenario 1

Skenario ini hanya menyimpan Recordset ke file lalu ke Stream. Kemudian membuka aliran yang bertahan ke Recordset lain.

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  

Skenario 2

Skenario ini mempertahankan Recordset ke dalam Stream dalam format XML. Kemudian membaca Stream ke dalam string yang dapat Anda periksa, manipulasi, atau tampilkan.

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.  
...  

Skenario 3

Contoh kode ini menunjukkan kode ASP yang mempertahankan Recordset sebagai XML langsung ke objek Respons :

...  
<%  
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  
%>  
...  

Skenario 4

Dalam skenario ini, kode ASP menulis konten Recordset dalam format ADTG kepada klien. Layanan Kursor Microsoft untuk OLE DB dapat menggunakan data ini untuk membuat Recordset yang terputus.

Properti baru pada RDS DataControl, URL, menunjuk ke halaman .asp yang menghasilkan Recordset. Ini berarti objek Recordset dapat diperoleh tanpa RDS menggunakan objek DataFactory sisi server atau pengguna yang menulis objek bisnis. Ini menyederhanakan model pemrograman RDS secara signifikan.

Kode sisi server, bernama 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  
%>  

Kode sisi klien:

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

Pengembang juga memiliki opsi untuk menggunakan objek Recordset pada klien:

...  
function GetRs()   
    {  
    rs = CreateObject("ADODB.Recordset");  
    rs.Open "https://server/directory/recordset.asp"  
    DC1.SourceRecordset = rs;  
    }  
...  

Lihat juga

Metode Terbuka (Recordset ADO)
Objek Rekaman (ADO)
Metode Simpan