Метод Clone (ADO)

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

Синтаксис

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

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

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

Параметры

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

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

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

Комментарии

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

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

rsNew.Filter = rsOriginal.Filter  

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

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

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

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

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

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

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

Применение

Объект Recordset (ADO)

См. также:

Пример метода Clone (Visual Basic)
Пример метода Clone (VBScript)
Пример метода Clone (Visual C++)