Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Представляет весь набор записей из базовой таблицы или результаты выполняемой команды. В любое время объект recordset Recordset относится только к одной записи в наборе в качестве текущей записи.
Замечания
Объекты Recordset используются для управления данными от поставщика. При использовании ADO данные практически полностью используют объекты Recordset . Все объекты набора записей состоят из записей (строк) и полей (столбцов). В зависимости от функциональных возможностей, поддерживаемых поставщиком, некоторые методы или свойства Recordset могут быть недоступны.
ADODB. Набор записей — это ProgID, который следует использовать для создания объекта Recordset . Существующие приложения, ссылающиеся на устаревшие ADOR. Recordset ProgID будет продолжать работать без повторной компиляции, но новая разработка должна ссылаться на ADODB. Набор записей.
В ADO определены четыре разных типа курсоров:
Динамический курсор Позволяет просматривать дополнения, изменения и удаления другими пользователями; позволяет всем типам перемещения по набору записей , который не зависит от закладок; и разрешает закладки, если поставщик их поддерживает.
Курсор набора ключей Ведет себя как динамический курсор, за исключением того, что он не позволяет просматривать записи, добавляемые другими пользователями, и запрещает доступ к записям, которые удаляют другие пользователи. Изменения данных другими пользователями по-прежнему будут видимы. Она всегда поддерживает закладки и поэтому позволяет всем типам перемещения по набору записей.
Статический курсор Предоставляет статическую копию набора записей, используемых для поиска данных или создания отчетов; всегда разрешает закладки и, следовательно, разрешает все типы перемещения по набору записей. Дополнения, изменения или удаления другими пользователями не будут отображаться. Это единственный тип курсора, разрешенного при открытии клиентского объекта Recordset .
Курсор только для пересылки Позволяет прокручиваться только вперед по набору записей. Дополнения, изменения или удаления другими пользователями не будут отображаться. Это повышает производительность в ситуациях, когда необходимо сделать только один проход через набор записей.
Задайте свойство CursorType перед открытием набора записей , чтобы выбрать тип курсора или передать аргумент CursorType с помощью метода Open . Некоторые поставщики не поддерживают все типы курсоров. Проверьте документацию для поставщика. Если тип курсора не указан, ADO по умолчанию открывает курсор только для пересылки.
Если свойству CursorLocation присвоено значение adUseClient для открытия набора записей, свойство UnderlyingValue в объектах Field недоступно в возвращаемом объекте Recordset . При использовании с некоторыми поставщиками (например, поставщиком Microsoft ODBC для OLE DB в сочетании с Microsoft SQL Server) можно создавать объекты набора записей независимо от ранее определенного объекта Connection , передав строку подключения с помощью метода Open . ADO по-прежнему создает объект Connection , но он не назначает этот объект переменной объекта. Однако при открытии нескольких объектов Recordset в одном подключении необходимо явно создать и открыть объект Connection ; При этом объект Connection назначается переменной объекта. Если эта переменная объекта не используется при открытии объектов Recordset , ADO создает новый объект Connection для каждого нового набора записей, даже если вы передаете ту же строку подключения.
При необходимости можно создать столько объектов Recordset .
При открытии набора записей текущая запись размещается на первой записи (если она есть), а свойства BOF и EOF имеют значение False. Если нет записей, параметры свойства BOF и EOF имеют значение True.
Вы можете использовать методы MoveFirst, MoveLast, MoveNext и MovePrevious ; Метод Move ; и свойства AbsolutePosition, AbsolutePage и Filter для изменения положения текущей записи, предполагая, что поставщик поддерживает соответствующие функции. Объекты набора записей только для пересылки поддерживают только метод MoveNext . При использовании методов перемещения для посещения каждой записи (или перечисления набора записей) можно использовать свойства BOF и EOF , чтобы определить, перемещены ли вы за пределы начала или конца набора записей.
Прежде чем использовать любую функцию объекта Recordset , необходимо вызвать метод Supported в объекте, чтобы убедиться, что функциональность поддерживается или доступна. Не следует использовать функциональные возможности, когда метод Поддержки возвращает значение false. Например, можно использовать метод MovePrevious , только если Recordset.Supports(adMovePrevious) возвращает значение True. В противном случае вы получите сообщение об ошибке, так как объект Recordset , возможно, был закрыт, и функциональность, отрисоваемая в экземпляре, недоступна. Если интересующая вас функция не поддерживается, поддержка также возвращает значение false. В этом случае следует избегать вызова соответствующего свойства или метода в объекте Recordset .
Объекты набора записей могут поддерживать два типа обновления: немедленно и пакетно. При немедленном обновлении все изменения данных записываются немедленно в базовый источник данных после вызова метода Update . Вы также можете передавать массивы значений в качестве параметров с помощью методов AddNew и Update и одновременно обновлять несколько полей в записи.
Если поставщик поддерживает пакетное обновление, можно изменить кэш поставщика на несколько записей, а затем передать их в один вызов базы данных с помощью метода UpdateBatch . Это относится к изменениям, внесенным с помощью методов AddNew, Update и Delete . После вызова метода UpdateBatch можно использовать свойство Status , чтобы проверить наличие конфликтов данных, чтобы устранить их.
Замечание
Чтобы выполнить запрос без использования объекта Command , передайте строку запроса в метод Open объекта Recordset . Однако объект Command требуется, если требуется сохранить текст команды и повторно выполнить его или использовать параметры запроса.
Свойство Mode управляет разрешениями доступа.
Коллекция Fields — это элемент набора записей по умолчанию. В результате следующие два оператора кода эквивалентны.
Debug.Print objRs.Fields.Item(0) ' Both statements print
Debug.Print objRs(0) ' the Value of Item(0).
При передаче объекта Recordset между процессами маршалируются только значения набора строк , а свойства объекта Recordset игнорируются. Во время отмены сортировки набор строк распакован в только что созданный объект Recordset , который также задает его свойства значениям по умолчанию.
Объект набора записей безопасно для сценариев.
Этот раздел содержит следующую тему.
См. также
объект подключения (ADO)
Коллекция полей (ADO)
Коллекция свойств (ADO)
Приложение A: Поставщики