Save 메서드

파일 또는 Stream 개체에 레코드 집합을 저장합니다.

구문

  
recordset.Save Destination, PersistFormat  

매개 변수

대상
선택 사항입니다. 레코드 집합이 저장될 파일의 전체 경로 이름 또는 Stream 개체에 대한 참조를 나타내는 Variant입니다.

PersistFormat
(선택 사항) 레코드 집합을 저장할 형식(XML 또는 ADTG)을 지정하는 PersistFormatEnum 값입니다. 기본값은 adPersistADTG입니다.

설명

Save Method 메서드는 열려 있는 레코드 집합에서만 호출할 수 있습니다. Open Method(ADO 레코드 집합) 메서드를 사용하여 나중에 Destination에서 레코드 집합을 복원합니다.

Filter Property 속성이 레코드 집합에 적용되는 경우 필터에서 액세스할 수 있는 행만 저장됩니다. 레코드 집합이 계층적이면 부모 레코드 집합을 포함하여 현재 자식 레코드 집합과 해당 자식이 저장됩니다. 자식 레코드 집합의 Save 메서드가 호출되면 자식 및 해당 자식의 모든 자식이 저장되지만 부모는 저장되지 않습니다.

레코드 집합을 처음 저장할 때 대상을 지정하는 것은 선택 사항입니다. 대상을 생략하면 레코드 집합의 Source 속성 값으로 설정된 이름으로 새 파일이 만들어집니다.

첫 번째 저장 이후에 저장을 호출할 때 대상을 생략합니다. 그렇지 않으면 런타임 오류가 발생합니다. 이후에 새 대상으로 저장을 호출하면 레코드 집합이 새 대상에 저장됩니다. 그러나 새 대상과 원래 대상은 모두 열립니다.

저장레코드 집합 또는 대상을 닫지 않으므로 레코드 집합을 계속 사용하고 최근 변경 내용을 저장할 수 있습니다. 대상레코드 집합을 닫을 때까지 열려 있습니다.

보안상의 이유로 Save 메서드는 Microsoft Internet Explorer에서 실행되는 스크립트에서 낮은 수준의 사용자 지정 보안 설정만 사용할 수 있도록 허용합니다.

비동기 Recordset 가져오기, 실행 또는 업데이트 작업이 진행 중인 동안 Save 메서드가 호출되면 저장은 비동기 작업이 완료될 때까지 대기합니다.

레코드는 레코드 집합의 첫 번째 행부터 저장됩니다. Save 메서드가 완료되면 현재 행 위치가 Recordset의 첫 번째 행으로 이동됩니다.

최상의 결과를 얻으려면 Save를 사용하여 ADO(CursorLocation Property) 속성을 adUseClient로 설정합니다. 공급자가 Recordset 개체를 저장하는 데 필요한 모든 기능을 지원하지 않는 경우 커서 서비스에서 해당 기능을 제공합니다.

CursorLocation 속성이 adUseServer로 설정된 상태에서 Recordset이 유지되면 Recordset에 대한 업데이트 기능이 제한됩니다. 일반적으로 단일 테이블 업데이트, 삽입 및 삭제만 허용됩니다(공급자 기능에 따라 다름). 이 구성에서는 Resync Method 메서드도 사용할 수 없습니다.

참고

adVariant, adIDispatch 또는 adIUnknown 형식의 필드를 사용하여 레코드 집합을 저장하는 것은 ADO에서 지원되지 않으며 예측할 수 없는 결과를 초래할 수 있습니다.

조건 문자열 형식의 필터(예: OrderDate > '12/31/1999')만 지속형 레코드 집합의 내용에 영향을 줍니다. 책갈피 배열로 만들거나 FilterGroupEnum의 값을 사용하여 만든 필터는 지속형 레코드 집합의 내용에 영향을 미치지 않습니다. 이러한 규칙은 클라이언트 쪽 또는 서버 쪽 커서를 사용하여 만든 레코드 집합에 적용됩니다.

Destination 매개 변수는 OLE DB IStream 인터페이스를 지원하는 모든 개체를 허용할 수 있으므로 Recordset을 ASP Response 개체에 직접 저장할 수 있습니다. 자세한 내용은 XML 레코드 집합 지속성 시나리오를 참조하세요.

다음 Visual Basic 코드와 같이 XML 형식의 레코드 집합을 MSXML DOM 개체의 인스턴스에 저장할 수도 있습니다.

Dim xDOM As New MSXML.DOMDocument  
Dim rsXML As New ADODB.Recordset  
Dim sSQL As String, sConn As String  
  
sSQL = "SELECT customerid, companyname, contactname FROM customers"  
sConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Northwind.mdb"  
rsXML.Open sSQL, sConn  
rsXML.Save xDOM, adPersistXML   'Save Recordset directly into a DOM tree.  
...  

참고

계층적 레코드 집합(데이터 셰이프)을 XML 형식으로 저장할 경우 두 가지 제한 사항이 적용됩니다. 계층적 레코드 집합에 보류 중인 업데이트가 포함되어 있고 매개 변수화된 계층적 레코드 집합을 저장할 수 없는 경우 XML에 저장할 수 없습니다.

XML 형식으로 저장된 레코드 집합은 UTF-8 형식을 사용하여 저장됩니다. 이러한 파일이 ADO 스트림에 로드되면 스트림의 Charset 속성이 UTF-8 형식에 적합한 값으로 설정되지 않은 한 Stream 개체는 스트림에서 레코드 집합을 열려고 시도하지 않습니다.

적용 대상

참고 항목

Save 및 Open 메서드 예제(VB)
Save 및 Open 메서드 예제(VC++)
Open 메서드(ADO 레코드 집합)
Open 메서드(ADO 스트림)
SaveToFile 메서드