Компоненты доступа к данным
Так как компоненты InterBase Express используют для получения набора данных собственный механизм, то иерархия классов-предков включает только обязательный для всех наборов данных TDataSet класс TiBCustomDataSet, который, собственно, и инкапсулирует механизм доступа InterBase Express (см. рис. 12.1).
Для связи с базой данных компоненты InterBase Express применяют компоненты соединения TiBDatabase (см. выше). Для этого они используют свойство:
property Database: TiBDatabase;
Доступ к связанной транзакции осуществляется через свойство:
property Transaction: TIBTransaction;
Дополнительно к стандартным свойствам и методам, описываемым в гл. 12, класс TiBCustomDataSet имеет свойство:
type TIBUpdateRecordTypes = set of (cusModified, cuslnserted, cusDeleted, cusUnmodified, cusUninserted); property UpdateRecordTypes: TIBUpdateRecordTypes;
Где:
- cusModified – модифицированные записи;
- cuslnserted – добавленные записи;
- cusDeleted – удаленные записи;
- cusUnmodified – немодифицированные записи;
- cusUninserted – недобавленные записи.
Данное свойство определяет записи набора данных, на которые распространяются операции кэширования.
Свойство:
property BufferChunks: Integer;
…определяет число записей, которые компонент загружает в собственный локальный буфер для ускорения выполнения стандартных операций.
При использовании компонентов в приложениях необходимо учитывать некоторые особенности.
Обновление набора данных выполняется не при каждом сохранении изменений. Такое поведение компонента определяется свойством:
property ForcedRefresh: Boolean;
…которое по умолчанию имеет значение False.
Это ускоряет работу компонента. При необходимости выполнять обновление данных с максимальной частотой свойству ForcedRefresh нужно присвоить значение True.
В зависимости от настроек компонента, с ним можно выполнять различные виды операций редактирования, перечень которых содержится в свойстве "только для чтения":
type TLiveMode = (Imlnsert, ImModify, ImDelete, ImRefresh); TLiveModes = set of TLiveMode; property LiveMode: TLiveModes;