資料流和保存

Recordset 物件 Save 方法會儲存或保存檔案中的 Recordset,而 Open 方法會從該檔案還原 Recordset

使用 ADO 2.7 或更新版本時,SaveOpen 方法也可以將 Recordset 保存到 Stream 物件。 使用遠端資料服務 (RDS) 和 Active Server Pages (ASP) 時,此功能特別有用。

如需如何在 ASP 頁面上自行使用持續性的詳細資訊,請參閱目前的 ASP 文件。

以下是一些示範如何使用 Stream 物件和持續性的案例。

實例 1

此案例只會將 Recordset 儲存至檔案,然後再儲存至 Stream。 然後會將保存的資料流程開啟至另一個 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  

案例 2

此案例會將 Recordset 保存成 XML 格式的 Stream。 然後會將 Stream 讀入您可以檢查、操作或顯示的字串。

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

案例 3

此範例程式碼會將 Recordset 保存為 XML 的 ASP 程式碼直接顯示到 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  
%>  
...  

案例 4

在此案例中,ASP 程式碼會將 Recordset 的內容以 ADTG 格式寫入用戶端。 Microsoft Cursor Service for OLE DB 可以使用此資料來建立中斷連線的 Recordset

RDS DataControlURL 上的新屬性會指向產生 Recordset的 .asp 頁面。 這表示可以使用伺服器端 DataFactory 物件或撰寫商務物件的使用者,在沒有 RDS 的情況下取得 Recordset 物件。 這可大幅簡化 RDS 程式設計模型。

伺服器端程式碼,名為 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  
%>  

用戶端程式碼:

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

開發人員也可以選擇在用戶端上使用 Recordset 物件:

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

另請參閱

Open 方法 (ADO Recordset)
Record 物件 (ADO)
Save 方法