Компонент TIBTable реализует все возможности стандартного компонента, инкапсулирующего таблицу (см. гл. 12). Дополнительно к ним можно обратить внимание на несколько полезных свойств и методов.
При выборе таблицы (СЮЙСТВО TableName) СВОЙСТВО type
TIBTableType = (ttSystem, ttview);
TIBTableTypes = set of TIBTableType;
property TableTypes: TIBTableTypes;
определяет, какие таблицы доступны для выбора:
□ ttSystem - доступны системные таблицы и просмотры;
□ ttview - доступны определенные пользователем просмотры.
При открытии набора данных упорядочивание записей осуществляется в соответствии со значением свойства
property Defaultlndex: Boolean;
При значении True записи располагаются в порядке, определяемом первичным индексом таблицы БД.
Во время выполнения свойство
property Exists: Boolean;
позволяет определить, существует ли в базе данных таблица, имя которой определено СВОЙСТВОМ TableName.
Метод
procedure GotoCurrent (Table: TIBTable);
синхронизирует курсоры текущего набора данных и набора данных компонента, заданного параметром Table.
Методы-обработчики событий полностью соответствуют классу TIBCustom-DataSet (см. табл. 18.2).
Компонент TIBQuery
Компонент TIBQuery выполняет все стандартные функции компонента запроса и наследует возможности класса TiBCustomDataSet.
Как и у остальных компонентов запросов, свойство
property SQL: TStrings;
содержит текст запроса и позволяет редактировать его. С этим свойством связан специализированный редактор (рис. 18.2).
Для просмотра текста запроса можно использовать свойство
property Text: string;
Параметры запроса хранятся в стандартном свойстве
property Params: TParams;
Общее число параметров запроса возвращает свойство
property PararrCount: Word;
При создании новых записей в редактируемых наборах данных компонентов запросов возникает проблема присвоения значений полям первичных индексов. Очевидно, что при сохранении новой записи в базе данных поле первичного индекса будет инкрементировано средствами сервера InterBase (соответствующими генератором и триггером). Однако получить это значение в приложении можно только сохранив изменения и обновив набор данных, что зачастую требует больших затрат ресурсов.
Для решения этой проблемы в компоненте TiBQuery используется свойство
property GeneratorField: TIBGeneratorField;
Редактор свойства (рис. 18.2) позволяет связать генератор с инкрементируе-мым полем.
Рис. 18.2. РедакторCBOkicTBaGeneratorFieldKOMnoHeHTaTiBQuery
Список Generator позволяет выбрать один из доступных генераторов базы данных. Список Field задает инкрементируемое поле набора данных. В строке Increment By определяется шаг прибавляемого значения поля.
Группа радиокнопок Apply Event определяет событие, при котором срабатывает генератор:
□ On New Record - при создании новой записи;
□ On Post - при сохранении новой записи;
□ On Server - генератор управляется сервером.
Редактор свойства GeneratorField попросту присваивает значения полям экземпляра класса TIBGeneratorField.
Методы-обработчики событий полностью соответствуют классу TlBCustom-DataSet (см. табл. 18.2).