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

Компонент TIBTransaction

Компонент TIBTransaction инкапсулирует средства управления транзакцией при работе с сервером InterBase. Для этого он должен быть связан с компонентом TiBDatabase при помощи своего свойства:

property DefaultDatabase: TiBDatabase;

Один компонент транзакции может быть связан с несколькими компонентами TiBDatabase. Для этого необходимо задать один компонент транзакции в свойствах DefaultTransaction всех необходимых компонентов соединений (см. выше). Список всех связанных компонентов соединений содержится в свойстве:

property Databases[Index: Integer]: TiBDatabase;

…а их общее число возвращает свойство:

property DatabaseCount: Integer;

Во время выполнения новое соединение может быть связано с транзакцией методом:

function AddDatabase(db: TIBDatabase): Integer;

Или же, связь может быть отменена:

procedure RemoveDatabase(Idx: Integer);

А метод:

procedure RemoveDatabases;

…разрывает все установленные связи с компонентом TIBDatabase.

Индекс связанного соединения в списке Databases транзакции можно получить при помощи метода:

function FindDatabase (db: TIBDatabase): Integer;

Например, если вам не известно ничего, кроме имени компонента, можно поступить так:

var i, FIndex: Integer;
…
for i: = 0 to Forml.ComponentCount – 1 do
if Forml.Components[i].Name = 'IBDatabasel'
then FIndex: =
IBTransactionl.FindDatabase(TIBDatabase(Forml. Components[i]));
…

Соединение, заданное по умолчанию свойством DefaultDatabase, возвращает метод:

function FindDefaultDatabase: TIBDatabase;

Транзакция может иметь набор параметров, задать которые можно при помощи свойства:

property Params: TStrings;

…аналогично компоненту TIBDatabase. Прямой доступ для чтения к буферу параметров транзакции Transaction Parameters Buffer (TPB) типа pchar обеспечивает свойство:

property TPB: PChar;

Длина буфера содержится в свойстве:

property TPBLength: Short;

Дескриптор транзакции представлен свойством:

property Handle: TISC_TR_HANDLE;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.