Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции 2005 / P4 / Технология автоматизации.doc
Скачиваний:
28
Добавлен:
16.04.2013
Размер:
191.49 Кб
Скачать

Технология Inter Base Express (ibx).

Фирма Borlandразработала IBX, которая предназначена для создания тонкого клиента. С этой целью программисту предоставляется возможность использовать непосредственный доступ к серверу InterBase без участия BDE или аналогичных средств доступа к данным. Характерной особенностью IBX является создание соединения с БД, которая достигается с помощьюдвух компонентов:

IBDataBase

IBTransaction

Эти компоненты, как и прочие компоненты, поддерживающие IBX, находятся на странице с ярлыком InterBase палитры компонентовBuilder(Delphi).

Соединение компонентов IBXс БД осуществляется через компонентIBDataBase. Он выполняет для компонентов IBX функции, во многом аналогичные тем, которые выполняются компонентомADOConnectionдля компонентовADO. БД, с которой осуществляется соединение, задаётся свойствомDatabaseName.

Компонент IBTransactionпозволяет организовать транзакции.

При использовании технологии InterBase Express для взаимодействия с сервером InterBase хотя бы один компонент типа IBTransaction должен быть связан с компонентом IBDataBase. Причем в ИС с многоуровневой архитектурой каждый SQL-запрос будет исполняться в отдельной транзакции. Транзакция, которая представляется компонентом IBTransaction автоматически стартуется или начинается в момент активизации этого компонента.

1) Активизация компонента IBTransaction происходит при открытии компонента типа IBTable, которая осуществляется установка свойства Active=Trueили с помощью методаOpen.

2) Другим способом начать транзакцию является использование метода StartTransaction, который имеется у компонента TIBTransation - явное начало транзакции. Только после начала транзакции можно выполнять операции с базами данных.

С помощью метода Commit компонента TIBTransation можно завершить транзакцию и происходит отключение от таблиц.

Rollback- откат транзакции для отмены изменения, в результате база возвращается в исходное состояние (до начала транзакции) и транзакция завершается.

Поскольку транзакции не могут быть вложенными, то нельзя допускать последовательного выполнения метода, который открывает таблицу, соединенную с транзакцией, и метода, начинающего транзакцию.

Таким образом организация транзакции осуществляется по следующей схеме:

IBDatabase1->Open();

DataModule2->IBTransaction1->StartTransaction();

. . .

операторы изменения данных в БД

. . .

if(<запрос на фиксацию изменений>)

IBTransaction1->Commit();

else

IBTransaction1->Rollback();