Компоненты доступа к данным. Класс TBDEDataSet.
Компоненты доступа к данным, используемые при разработке приложений BDE, располагаются на странице BDE Палитры компонентов. Их общими предками являются классы TBDEDataSet и TDBDataSet (см. рис. 12.1). Они обеспечивают работоспособность основных компонентов доступа к данным BDE – TTable, TQuery, TStoredProc.
Этот класс является потомком класса TDataSet, его значение трудно переоценить: именно TBDEDataSet обеспечивает работоспособность важнейших механизмов набора данных за счет обращения к функциям BDE (табл. 16.6). Например, класс TBDEDataSet перекрывает абстрактные методы своего предка TDataSet, отвечающие за такие важнейшие операции, как чтение данных и сохранение изменений в базе данных, навигация по записям набора данных, фильтрация.
Напомним, что все эти механизмы не созданы "с нуля", а только дополнены обращениями к функциям BDE в необходимых местах методов, изначально описанных в классе TDataSet. Например, для обеспечения фильтрации записей набора данных к классу добавлено новое свойство:
type TFilterOption = (foCaselnsensitive, foNoPartialCompare); TFilterOptions = set of TFilterOption; property FilterOptions: TFilterOptions;
Оно определяет дополнительные параметры отбора записей по фильтру (чувствительность к регистру символов и отбор по текстовому шаблону).
Дополнительно к существующим добавлен механизм кэширования изменений. Теперь все вносимые пользователем изменения могут накапливаться в специальном буфере, а их передачей в базу данных можно управлять.
Примечание
Эта возможность очень полезна при создании клиентских приложений в архитектуре клиент/сервер и играет ключевую роль при обеспечении возможности редактирования наборов данных сложных запросов SQL.
Дополнительно к методам работы с полями класса TDataSet добавлены функции использования полей в формате BLOB.
Для обеспечения использования функций API BDE на программном уровне добавлено свойство, содержащее дескриптор курсора, соответствующего текущей записи набора данных:
type HDBICur: Longint; property Handle: HDBICur;
Также класс обеспечивает возможность программного управления вторичными индексами набора данных в зависимости от типа таблицы базы данных.