Метод 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 | Нет |
Применение
См. также:
Пример метода Clone (Visual Basic)
Пример метода Clone (VBScript)
Пример метода Clone (Visual C++)