다음을 통해 공유


Clone 메서드(ADO)

기존 Recordset 개체에서 중복된 Recordset 개체를 만듭니다. 필요에 따라 복제본을 읽기 전용으로 지정합니다.

구문

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Return Value

Recordset 개체 참조를 반환합니다.

매개 변수

rstDuplicate
만들 중복 Recordset 개체를 식별하는 개체 변수입니다.

rstOriginal
복제할 Recordset 개체를 식별하는 개체 변수입니다.

LockType
(선택 사항) 원래 Recordset의 잠금 형식 또는 읽기 전용 Recordset를 지정하는 LockTypeEnum 값입니다. 유효한 값은 adLockUnspecified 또는 adLockReadOnly입니다.

설명

Clone 메서드를 사용하여 여러 개의 중복 Recordset 개체를 만들 수 있습니다. 특히 지정된 Recordset에서 현재 레코드를 두 개 이상 유지하려는 경우 더욱 그렇습니다. Clone 메서드를 사용하는 것이 원본과 동일한 정의를 사용하는 새 Recordset 개체를 만들고 여는 것보다 더 효율적입니다.

원래 RecordsetFilter 속성(있는 경우)은 복제에 적용되지 않습니다. 새 RecordsetFilter 속성을 설정하여 결과를 필터링합니다. 기존 필터 값을 복사하는 가장 간단한 방법은 다음과 같이 직접 할당하는 것입니다.

rsNew.Filter = rsOriginal.Filter  

새로 만든 복제본의 현재 레코드가 첫 번째 레코드로 설정됩니다.

Recordset 개체에 대한 변경 내용은 커서 유형에 관계없이 모든 복제본에 표시됩니다. 그러나 원래 Recordset에서 Requery를 실행한 후에는 복제본이 더 이상 원본과 동기화되지 않습니다.

원본 Recordset를 닫아도 복사본은 닫히지 않으며 복사본을 닫거나 원본 또는 다른 복사본을 닫지 않습니다.

책갈피를 지원하는 Recordset 개체만 복제할 수 있습니다. 책갈피 값은 서로 바꿔 사용할 수 있습니다. 즉, 한 Recordset 개체의 책갈피 참조는 해당 복제본에 있는 동일한 레코드를 참조합니다.

트리거되는 일부 Recordset 이벤트는 모든 Recordset 복제본에서도 발생합니다. 그러나 현재 레코드는 복제된 Recordset 간에 다를 수 있으므로 복제본에 대해 이벤트가 유효하지 않을 수 있습니다. 예를 들어 필드 값을 변경하는 경우 변경된 Recordset 및 모든 복제본에서 WillChangeField 이벤트가 발생합니다. 복제된 RecordsetWillChangeField 이벤트(변경되지 않은 경우)에 대한 Fields 매개 변수는 복제의 현재 레코드 필드를 참조하며, 이는 변경이 발생한 원래 Recordset의 현재 레코드와 다른 레코드일 수 있습니다.

다음 표에서는 모든 Recordset 이벤트의 전체 목록을 제공합니다. Clone 메서드를 사용하여 생성된 Recordset 복제본에 대해 유효하고 트리거되는지 여부를 나타냅니다.

이벤트 복제본에서 트리거되었나요?
EndOfRecordset
FetchComplete
FetchProgress
FieldChangeComplete
MoveComplete
RecordChangeComplete
RecordsetChangeComplete
WillChangeField
WillChangeRecord
WillChangeRecordset
WillMove

적용 대상

레코드 집합 개체(ADO)

참고 항목

Clone 메서드 예제(VB)
Clone 메서드 예제(VBScript)
Clone 메서드 예제(VC++)