Метод Клонирования (ADO)

Создает повторяющийся объект Recordset из существующего объекта Recordset . При необходимости указывает, что клон должен быть только для чтения.

Синтаксис

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Возвращаемое значение

Возвращает ссылку на объект Recordset .

Параметры

rstDuplicate
Переменная объекта, идентифицирующая созданный объект повторяющегося набора записей .

rstOriginal
Переменная объекта, идентифицирующая объект Recordset , который будет дублироваться.

Тип замка
Необязательно. Значение LockTypeEnum , указывающее тип блокировки исходного набора записей или набор записей только для чтения. Допустимые значения: adLockUnspecified или adLockReadOnly.

Замечания

Используйте метод Clone для создания нескольких повторяющихся объектов Recordset , особенно если требуется сохранить несколько текущих записей в заданном наборе записей. Использование метода Clone является более эффективным, чем создание и открытие нового объекта Recordset , использующего то же определение, что и исходное.

Свойство Filter исходного набора записей, если таковой отсутствует, не будет применено к клону. Задайте свойство Filter нового набора записей , чтобы отфильтровать результаты. Самый простой способ скопировать любое существующее значение фильтра — назначить его напрямую, как показано ниже.

rsNew.Filter = rsOriginal.Filter  

Текущая запись только что созданного клона устанавливается на первую запись.

Изменения, внесенные в один объект Recordset , отображаются во всех его клонах независимо от типа курсора. Однако после выполнения requery в исходном наборе записей клоны больше не будут синхронизированы с исходным.

Закрытие исходного набора записей не закрывает его копии, и закрытие копии не закрывает исходный или любую из других копий.

Клонировать объект Recordset, поддерживающий закладки, можно клонировать только объект Recordset . Значения закладок взаимозаменяемы; То есть ссылка на закладки из одного объекта Recordset ссылается на ту же запись в любом из его клонов.

Некоторые события набора записей , которые активируются, также будут возникать во всех клонах набора записей . Однако, поскольку текущая запись может отличаться от клонированных наборов записей, события могут быть недопустимыми для клона. Например, если изменить значение поля, событие WillChangeField будет происходить в измененном наборе записей и во всех клонах. Параметр Fields события WillChangeField клонированного набора записей (где изменение не было сделано) будет ссылаться на поля текущей записи клона, которая может отличаться от текущей записи исходного набора записей, в которой произошло изменение.

В следующей таблице представлен полный список всех событий Набора записей . Он указывает, являются ли они допустимыми и активируются для любых клонов набора записей, созданных с помощью метода Clone.

Событие Активируется в клонах?
EndOfRecordset нет
FetchComplete нет
ИзвлечениеProgress нет
FieldChangeComplete Да
MoveComplete нет
RecordChangeComplete Да
RecordsetChangeComplete нет
WillChangeField Да
WillChangeRecord Да
WillChangeRecordset нет
WillMove нет

Применимо к

объекта набора записей

См. также

Пример метода Клонирования (VB)
Пример метода Clone (VBScript)
Пример метода Clone (VC++)