Recordset

С помощью объекта RecordSet можно извлекать, добавлять, изменять и удалять отдельные записи из одной таблицы или связанные записи из нескольких таблиц. Набор записей может относиться к типу Table (таблица), Dynaset (динамический набор) или SnapShot (статический набор).

Табличные наборы используются для доступа к записям в таблице, хранимой в mdb-файле. С помощью табличных наборов можно извлекать, добавлять, обновлять и удалять записи в отдельной таблице.

Динамические наборы применяются для доступа к записям в таблице, хранимой в mdb-файле или связанной с ним. Динамические наборы используются также для доступа к записям, которые являются результатом выполнения запроса. С помощью этих наборов можно извлекать, добавлять, обновлять и удалять записи, как в отдельной таблице, так и в нескольких в соответствии с определением запроса.

Статические наборы подобны динамическим в том смысле, что они используются для доступа к записям в локальной таблице, связанной таблице или в запросе. Отличие состоит в том, что они используются только для чтения данных, а запросы на изменение (добавление, удаление, обновление записей) выполнены быть не могут. Динамический набор содержит ссылки на записи в таблице, а статический набор содержит копии записей. При однонаправленном просмотре записей наилучшую производительность обеспечивают статические наборы записей с последовательным доступом (Forward-only).

Объект RecordSet обладает семейством Fields, которое обеспечивает доступ к отдельным полям записи, и множеством методов, которые позволяют создавать новые записи (AddNew), уничтожать существующие (Delete), обновлять (Edit, Update), создавать копии набора (Clone), искать запись (Seek, FindFirst, FindLast, FindNext, FindPrevious), перемещаться по записям (Move, MoveFirst, MoveLast, MoveNext, MovePrevious). Объект RecordSet создается методом OpenRecordSet, а закрывается методом Close. Метод ReQuery обновляет набор.

Отметим наиболее распространенные свойства объекта RecordSet.
BOF. Указатель записи находится перед первой записью или набор пуст. Если в этой ситуации применить метод FindPrevious или MovePrevious, возникает ошибка.
EOF. Указатель записи находится после последней записи набора. Попытка применить метод MoveNext или FindNext приводит к ошибке.
BookMark. Закладка, являющаяся строкой текста. Она однозначно идентифицирует текущую запись. Значение закладки можно запомнить в текстовой переменной и впоследствии присвоить свойству BookMark формы. В форме текущей снова становится отмеченная ранее запись.
Filter. Задает или возвращает строковое выражение, которое используется для отбора записей объекта RecordSet динамического или статического типа. При задании фильтра используется предложение WHERE языка SQL без ключевого слова WHERE. Названия полей объекта RecordSet заключаются в квадратные скобки. Для того чтобы фильтр заработал, нужно открыть новый объект RecordSet на основе того объекта, для которого установлен фильтр.
Index. Задает имя индекса для объекта RecordSet табличного типа. Это позволяет использовать в объекте RecordSet метод Seek для отыскания записей, удовлетворяющих заданному критерию.
LastModified. Возвращает закладку последней записи, модифицированной в объекте RecordSet.
Name. Имя источника (единственного) для объекта RecordSet, то есть имя таблицы, объекта QueryDef или первые 256 символов строки инструкции SQL, формирующей объект. Устанавливается методом OpenRecordSet и после этого становится доступным только для чтения.
NoMatch. Если это свойство имеет значение True, то это означает, что операция Find или Seek не смогла найти запись, удовлетворяющую заданному критерию.
RecordCount. Для табличных наборов возвращает общее число записей. Для статических и динамических наборов записей RecordCount возвращает число записей, к которым осуществлялось обращение. Чтобы получить полное число записей, нужно сначала вызвать метод MoveLast для перемещения указателя текущей записи в конец набора, а затем использовать RecordCount.
Sort. Устанавливает или возвращает порядок сортировки записей. Для сортировки нужно использовать строку, представляющую предложение Order BY языка SQL без ключевых слов Order By. При этом названия полей следует заключить в квадратные скобки. Порядок сортировки можно определить на основе одного или нескольких полей. Для того чтобы после установки порядка сортировки сортировка осуществилась, нужно открыть новый объект RecordSet на основе того объекта, для которого она установлена.
Type. Тип объекта RecordSet (Db_Open_Table, Db_Open_Dynaset, Db_Open_Snapshot). Это свойство инициализируется при вызове метода OpenRecordSet и используется только для чтения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: