Programming: Delphi


Иллюстрированный самоучитель по Delphi 7 для профессионалов



Компоненты доступа к данным



Так как компоненты InterBase Express используют для получения набора данных собственный механизм, то иерархия классов-предков включает только обязательный для всех наборов данных TDataSet класс TiBCustomDataSet, который, собственно, и инкапсулирует механизм доступа InterBase Express.

Для связи с базой данных компоненты 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;

Так как все эти компоненты предназначены для работы с сервером, то изначально все они поддерживают режим кэширования изменений и имеют соответственные свойства, методы и методы-обработчики событий (табл. 18.2).

Таблица 18.2. Методы-обработчики событий класса TiBCustomDataSet

Объявление

Описание

property Af terDatabaseDisconnect: TNotifyEvent;

Выполняется после закрытия соединения с базой данных

property AfterTransactionEnd: TNotifyEvent;

Выполняется по окончании транзакции, с которой связан данный набор данных

property Bef oreDatabaseDisconnect: TNotifyEvent;

Выполняется перед закрытием соединения с базой данных

property BeforeTransactionEnd: TNotifyEvent;

Выполняется перед окончанием транзакции, с которой связан данный набор данных

property DatabaseFree: TNotifyEvent;

Выполняется при обнулении свойства Database компонента набора данных

type

TIBUpdateAction = (uaFail, uaAbort, uaSkip, uaRetry, uaApplied, uaApply) ;

TIBUpdateErrorEvent = procedure ( DataSet : TDataSet ; E: EDatabaseError; UpdateKind: TUpdateKind; var UpdateAction: TIBUpdateAction) of object;

property OnUpdateError: TIBUpdateErrorEvent ;

Вызывается при возникновении ошибки сохранения изменений в режиме кэширования

type

TIBUpdateAction = (uaFail, uaAbort, uaSkip, uaRetry, uaApply, uaApplied);

TIBUpdateRecordEvent = procedure ( DataSet : TDataSet ; UpdateKind: TUpdateKind; var UpdateAction: TIBUpdateAction) of object;

property OnUpdateRecord: TIBUpdateRecordEvent ;

Вызывается при сохранении изменений в режиме кэширования

property TransactionFree: TNotifyEvent;

Выполняется при обнулении свойства Transaction компонента набора данных

Возможности компонентов TIBTable, TIBQuery, TIBStoredProc, TIBUpdateSQL мало чем отличаются от стандартных, описанных в гл. 12.

Для взаимодействия с сервером компоненты InterBase Express используют два класса, которые инкапсулируют важные структуры API InterBase. Эти структуры обеспечивают передачу серверу параметров запроса и возвращение результата выполнения запроса. Поэтому сначала рассмотрим классы TIBXSQLDA и TIBXSQLVAR, а затем перейдем к компонентам.




Назад | Оглавление | Вперёд




При перепечатке любого материала с сайта, видимая ссылка на источник www.warayg.narod.ru и все имена, ссылки авторов обязательны.

© 2005
 

Hosted by uCoz