Visual Basic 6. Руководство разработчика

Наборы записей


RecordSets

RecordSets — это объекты, содержащие множество (коллекцию, набор) записей, выбранных из одной или нескольких таблиц. В программировании базы данных RecordSets аналогичен переменным в обычном программировании. Нельзя обращаться к таблицам баз данных непосредственно. Единственный способ просматривать записи и управлять ими — использование объектов RecordSet. RecordSet состоит из столбцов и строк, похож на таблицу, но может содержать данные из нескольких таблиц. Содержимое сетки, приведенной на рис. 172, получено из одной таблицы, на основе которой и формируется RecordSet. Такой набор - результат запроса данных, например, просмотр имен заказчиков и суммы их заказов в данном месяце.

Рис. 17.2. Таблица Products базы данных NWIND: выделенная строка — запись в таблице Products

Примечание

RecordSets можно рассматривать как объектные переменные. Они хранят результаты запросов или всю таблицу базы данных, как числовые переменные хранят числа. Однако содержимое RecordSet имеет более сложную структуру (поскольку состоит из строк и столбцов), и каждая ячейка в этой структуре может иметь различный тип. Для обращения к содержимому RecordSet используются свойства и методы.

RecordSet позволяет просмотреть некоторые данные, отобранные из базы данных согласно критериям, определенным пользователем. Существует три типа RecordSets

•  DynaSet (Динамический набор), предназначенный для изменения содержимого базы данных;

•  SnapShot (Моментальный снимок), являющийся статическим набором записей (только для чтения);

•  Table (Таблица), которая напрямую обеспечивает просмотр таблиц.

DynaSet и SnapShot обычно создаются с помощью SQL-операторов (Structured Query Language — язык структурированных запросов). SQL-операторы рассмотрены в этой главе позже, а пока запомните, что это — команды, использующиеся для определения критериев отбора данных из базы данных. (Можно использовать SQL-команды для редактирования и создания новых баз данных, но это в книге не рассмотрено). Изменения, вносимые пользователем с помощью DynaSet, находят отражение в исходных таблицах SnapShot позволяет осуществлять только просмотр данных.


Наиболее гибким и мощным типом коллекции записей является

DynaSet, хотя некоторые операции (такие, например, как поиск) могут быстрее выполняться в наборах типа Table. Однако тип Table требует значительных накладных расходов. Наименее гибкий тип - это SnapShot, хотя и наиболее эффективный в смысле накладных расходов (это справедливо только в случае, когда объем выборки невелик – прим. ред). Если модифицировать базу данных не надо - выберите тип SnapShot.

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

Набор типа Table - это ссылка на таблицу в базе данных. Table быстрее, чем другие типы наборов. Он синхронизируется с данными таблицы и используется для редактирования базы данных. Кроме того, при доступе к таблице посредством набора записей типа Table для выполнения быстрого поиска данных используются индексы. Недостаток записей этого типа - они могут содержать только записи, принадлежащие одной таблице.


Содержание раздела