다음을 통해 공유


스트림 및 지속성

Recordset 개체 Save 메서드가 저장되거나 파일에 Recordset유지되고 Open 메서드는 해당 파일에서 Recordset 복원합니다.

ADO 2.7 이상을 사용하면 SaveOpen 메서드는 RecordsetStream 개체에도 유지할 수 있습니다. 이 기능은 RDS(원격 데이터 서비스) 및 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

이 시나리오에서는 레코드셋을 XML 형식으로 스트림에 저장합니다. 그런 다음 스트림을 검사, 조작 또는 표시할 수 있는 문자열로 읽습니다.

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

이 예제 코드는 Response 개체에 직접 XML로 Recordset 유지하는 ASP 코드를 보여줍니다.

...  
<%  
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 코드는 ADTG 형식의 Recordset 내용을 클라이언트에 씁니다. Microsoft Cursor Service for OLE DB 이 데이터를 사용하여 연결이 끊긴 레코드 집합만들 수 있습니다.

RDS DataControl의 새 속성인 URLRecordset을(를) 생성하는 .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)
ADO(레코드 개체)
저장 메서드