ТЕХНОЛОГИЯ ДОСТУПА К ДАННЫМ INTERBASE EXPRESS (IBX)
IBX является технологией прямого доступа к данным БД.
На странице InterBase Палитры компонентов содержатся компоненты доступа к данным, адаптированные для работы с сервером InterBase и объединенные названием InterBase eXpress. Их преимущество заключается в реализации всех функций за счет прямого обращения к API серверу InterBase. Благодаря этому существенно повысилась скорость работы компонентов.
Компоненты IBX позволяют разрабатывать приложения, ориентированные на архитектуру InterBase. К особенностям IBX можно отнести:
- — улучшенное управление транзакциями;
- — новые компоненты доступа к данным, позволяющие лучше решать распространенные задачи программирования;
- — возможность получения сведений о состоянии БД без прямого обращения к ее системным таблицам;
- — отслеживание состояния процессов выполнения запросов.
Рассмотрим иерархию компонентов IBX и определим, как
они связаны. Затем можно будет более полно представить, как именно их использовать (рис. 15).
Рассмотрев эту схему, можно сделать несколько выводов.
Во-первых, очевидно, что компонент TIBSQL не унаследован от класса TDataSet, поэтому невозможно использовать его с визуальными компонентами, вроде TDBGrid или TDBEdit, т. к. все стандартные визуальные компоненты работают только с потомками класса TDataSet.
Во-вторых, из данной схемы видно, что в IBX есть компоненты, совместимые с визуальными компонентами
(TDBGrid, TDBEdit и т. д.). Это потомки внутреннего класса TIBCustomDataSet — TIBDataSet, TIBTable, TIBQuery и TIBStoreProc. Почти вся данная ветка классов по своему назначению близка к аналогичной ветке компонентов для работы с BDE — TTable, TQuery и TStoreProc — предназначена для быстрой миграции старых приложений с BDE на IBX.
Рис. 15. Иерархия компонентов IBX
Для компонентов IBX соединение с сервером БД осуществляет компонент TIBDataBase.
Механизм доступа к данным IBX использует для обращений к серверу возможности клиентского программного обеспечения InterBase, которое должно быть инсталлировано на компьютере. При этом не требуется использовать BDE или любой другой механизм доступа к данным. Но в результате все компоненты IBX, инкапсулирующие набор данных, должны обращаться к БД только через компонент соединения TIBDataBase. Он позволяет выполнять некоторые операции с метаданными БД. Его основные методы: Open, Close.
В компоненте TIBDataBase отсутствуют средства управления транзакциями, которые вынесены в отдельный компонент TIBTransaction.
TIBTransaction предназначен для явного управления транзакцией. Основные методы: StartTransaction, Commit, Rollback, CommitRetaining, RollbackRetaining.
Так как компоненты IBX используют для получения набора данных собственный механизм, то иерархия классов- предков включает только обязательный для всех наборов данных TDataSet класс TIBCustomDataSet, который, собственно, и инкапсулирует механизм доступа IBX.
TIBDataSet предназначен для получения и редактирования данных, является потомком стандартного класса TDataSet и полностью совместим со всеми визуальными компонентами. Основные методы: Prepare, Open, Close, Insert, Append, Edit, Delete, Refresh.
Возможности компонентов TIBTable, TIBQuery, TIBStoredProc, TIBUpdateSQL мало чем отличаются от стандартных.
TIBTable — аналог стандартного ТТаЫе. Компонент предназначен для получения данных из одной таблицы или представления БД. Основное свойство — TableName. Основные методы: Open, Close. Набор данных, полученных при помощи TIBTable, является редактируемым, если речь идет о таблице БД, или обновляемом представлении. Компонент совместим с визуальными компонентами.
TIBQuery — аналог стандартного TQuery. Компонент предназначен для получения данных на основе SQL-запроса. Этот набор данных не всегда будет редактируемым, зачастую необходимо использовать дополнительный компонент TIBUpdateSQL, чтобы иметь возможность редактировать полученные сведения. Основное свойство - SQL. Основные методы: Open, Close, ExecSQL. Компонент совместим с визуальными компонентами.
TIBStoredProc предназначен для выполнения хранимых процедур и получения набора данных на основе результатов выполнения процедуры. Получаемый набор данных является нередактируемым. TIBStoredProc совместим с визуальными компонентами. Основное свойство — StoredProcName. Основной метод — ЕхесРгос.
Компонент TIBSQL предназначен для быстрого выполнения запросов SQL, поэтому не обеспечивает связи с компонентами представления данных.
TIBUpdateSQL — аналог TUpdateSQL. Используется в паре с TIBQuery и предназначен для создания модифицируемых наборов данных. Основные свойства: DeleteSQL, InsertSQL, ModifySQL и RefreshSQL.
TIBDataBaselnfo позволяет получить системную информацию о некоторых свойствах БД, соединения и сервера. Например, UserNames — список пользователей, подключенных к БД; PageSize - размер страницы БД.
TIBSQLMonitor предназначен для перехвата и отслеживания всех запросов, которые выполняют приложения, использующие IBX.
TIBEvents предназначен для получения пользовательских событий InterBase. Основное свойство — Events. Основные методы: RegisterEvents, UnregisterEvents.
Используя данную технологию, можно добиться минимального количества «прослоек» между непосредственно кодом клиентского приложения и вызовами InterBase API. Это позволяет получить в приложениях максимальную производительность, полную поддержку всех возможностей InterBase, а также минимальный объем конечного продукта, т. к. для работы приложений на базе прямого доступа необходима лишь минимальная установка клиента InterBase.
- Ш ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
- 1. Опишите технологию доступа к данным IBX.
- 2. Опишите иерархию компонентов технологии IBX.
- 3. Перечислите основные компоненты технологии IBX для подключения БД и опишите их.
- 4. Перечислите основные компоненты технологии IBX для работы с наборами данных и опишите их.
- 5. Перечислите основные компоненты технологии IBX для получения информации о БД и операциях, выполняемых над ней.
- 6. Выделите преимущества и недостатки использования технологии IBX.