Объект Recordset в ADO

Пример

GetRows
Этот пример демонстрирует, как использовать метод GetRows.

Объект Recordset

Объект Recordset ADO используется для хранения набора записей из таблицы базы данных. Объект Recordset состоит из записей и столбцов (полей).

В ADO этот объект является наиболее важным и часто используемым для выполнения операций с данными базы данных.

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

Когда вы впервые открываете Recordset, текущий указатель записи指向 первую запись, а атрибуты BOF и EOF равны False. Если нет записей, атрибуты BOF и EOF равны True.

Объект Recordset поддерживает два типа обновлений:

  • Срочное обновление - как только вызывается метод Update, все изменения немедленно записываются в базу данных.
  • Пакетное обновление - provider кэширует несколько изменений, а затем передает их в базу данных с помощью метода UpdateBatch.

В ADO определены 4 различных типа курсоров (пиктограмм):

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

Тип курсора можно установить с помощью свойства CursorType или параметра CursorType в методе Open.

Комментарий:Не все провайдеры (providers) поддерживают все методы и свойства Recordset объекта.

Свойства

Свойства Описание
AbsolutePage Установить или вернуть значение, определяющее страницу в Recordset объекте.
AbsolutePosition Установить или вернуть значение, определяющее порядковое положение текущей записи в Recordset объекте (номер позиции).
ActiveCommand Вернуть объект Command, связанный с Recordset объектом.
ActiveConnection Установить или вернуть определение соединения, если соединение закрыто, или текущий объект Connection, если соединение открыто.
BOF Вернуть true, если текущая позиция записи перед первой записью, в противном случае вернуть false.
Bookmark Установить или вернуть закладку. Эта закладка сохраняет текущее положение записи.
CacheSize Установить или вернуть количество записей, которые могут быть缓存ированы.
CursorLocation Установить или вернуть положение курсорной службы.
CursorType Установить или вернуть тип курсора Recordset объекта.
DataMember Установить или вернуть имя члена данных, который должен быть получен из объекта, ссылающегося на DataSource свойство.
DataSource Определить объект, содержащий данные, которые должны быть представлены в виде объекта Recordset.
EditMode Вернуть текущий статус редактирования записи.
EOF Вернуть true, если текущая позиция записи после последней записи, в противном случае вернуть false.
Filter Вернуть фильтр для данных Recordset объекта.
Index Установить или вернуть имя текущего индекса Recordset объекта.
LockType Установить или вернуть значение, определяющее тип блокировки, который можно指定 при редактировании записи Recordset.
MarshalOptions Установить или вернуть значение, определяющее, какие записи должны быть возвращены серверу.
MaxRecords Устанавливает или возвращает максимальное количество записей Recordset, возвращаемых из запроса.
PageCount Возвращает количество страниц данных в Recordset.
PageSize Устанавливает или возвращает максимальное количество записей на одной странице Recordset объекта.
RecordCount Возвращает количество записей в Recordset.
Sort Устанавливает или возвращает имя одного или нескольких полей, используемых в качестве критерия сортировки Recordset.
Source Устанавливает строковое значение или ссылку на объект Command и возвращает строковое значение, указывающее данные источника Recordset объекта.
State Возвращает значение, описывающее состояние Recordset объекта: открыт, закрыт, в процессе подключения, выполнения или получения данных.
Status Возвращает состояние текущей записи в ходе批 обновления или других массовых операций.
StayInSync Устанавливает или возвращает, изменяется ли ссылка на подзаписи при изменении позиции родительской записи.

Метод

Метод Описание
AddNew Создает новую запись.
Cancel Отменяет одно выполнение.
CancelBatch Отменяет одно действие批 обновления.
CancelUpdate Отменяет изменения, сделанные в одной записи объекта Recordset.
Clone Создает копию существующего Recordset.
Close Закрывает Recordset.
CompareBookmarks Сравнивает два маркера.
Delete Удаляет одну или несколько записей.
Find Ищет одну запись в Recordset, удовлетворяющую заданным условиям.
GetRows Копирует多条记录 из одного объекта Recordset в двумерный массив.
GetString Возвращает Recordset в виде строки.
Move Переносит указатель записи в Recordset.
MoveFirst Переносит указатель записи на первую запись.
MoveLast Переносит указатель записи на последнюю запись.
MoveNext Переносит указатель записи на следующую запись.
MovePrevious Переносит указатель записи на предыдущую запись.
NextRecordset Очищает текущий объект Recordset, выполняет серию команд и возвращает следующий Recordset.
Open Открывает элемент базы данных, который предоставляет доступ к записям таблицы, результатам запроса или сохраненному Recordset.
Requery Обновляет данные Recordset, повторно выполняя объект запроса, на котором он основан.
Resync Обновляет данные текущего Recordset из исходной базы данных.
Save Сохраняет объект Recordset в файл или объект Stream.
Seek Ищет индекс Recordset для быстрого нахождения строки, соответствующей указанному значению, и делает ее текущей.
Supports Возвращает булево значение, определяющее поддерживает ли Recordset объект специфический тип функции.
Update Сохраняет все изменения, внесенные в одно отдельное запись Recordset.
UpdateBatch Сохраняет все изменения, внесенные в Recordset, в базу данных. Используйте в режиме批-обновления.

Событие

Примечание: Вы не можете обрабатывать события с помощью VBScript или JScript (события могут обрабатываться только на языках Visual Basic, Visual C++ и Visual J++).

Событие Описание
EndOfRecordset Активируется при попытке перейти к строке за концом Recordset.
FetchComplete Активируется после того, как все записи в асинхронной операции были прочитаны.
FetchProgress Регулярно активируется во время асинхронной операции, сообщая о том, сколько записей было прочитано.
FieldChangeComplete Активируется после изменения значения объекта Field.
MoveComplete Активируется после изменения текущего положения в Recordset.
RecordChangeComplete Активируется после изменения записи.
RecordsetChangeComplete Активируется после изменения Recordset.
WillChangeField Активируется до изменения значения объекта Field.
WillChangeRecord Активируется до изменения записи.
WillChangeRecordset Активируется до изменения Recordset.
WillMove Активируется до изменения текущего положения в Recordset.

Сборник

Сборник Описание
Fields Указывает количество объектов Field в данном Recordset.
Properties Включает все объекты Property в всех Recordset.

Свойства набора полей

Свойства Описание
Count

Возвращает количество элементов в наборе полей. Начинается с 0.

Пример:

	countfields = rs.Fields.Count
	
Item(named_item/number)

Возвращает определенный элемент из набора полей.

Пример:

	itemfields = rs.Fields.Item(1)
	или	
	itemfields = rs.Fields.Item("Name")
	

Свойства набора свойств

Свойства Описание
Count

Возвращает количество элементов в наборе свойств. Начинается с 0.

Пример:

	countprop = rs.Properties.Count
	
Item(named_item/number)

Возвращает определенный элемент из набора свойств.

Пример:

	itemprop = rs.Properties.Item(1)
	или
	itemprop = rs.Properties.Item("Name")