Компонент 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;