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

Технология 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) Другим способом начать транзакцию является использование метода Start Transaction, который имеется у компонента TIBTransation - явное начало транзакции. Только после начала транзакции можно выполнять операции с базами данных.

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

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

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

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

IBDatabase1->Open();

DataModule2->IBTransaction1->StartTransaction();

. . .

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

. . .

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

IBTransaction1->Commit();

else

IBTransaction1->Rollback();