Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Округление в большую сторону
   Категория: Математика
  Автоматическое определения кодировки текста
   Категория: Текст и строки
  Как подключить или отключить сетевой диск
   Категория: Интернет и Сети
  Компоненты ToolBar и PageScroller
   Категория: Компоненты
  Поставить пароль на Paradox
   Категория: Базы данных
  Как найти наибольший общий делитель
   Категория: Математика
  Получить имена всех папок и файлов в директории
   Категория: Файловая система
  Прочитать содержимое папки
   Категория: Файловая система
  Функции дат в SQL
   Категория: Базы данных

FIBPlus. Свойства и методы. TpFIBTransaction

  << Назад к Оглавлению   


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

Свойства

DefaultDatabase
Это свойство возвращает базу данных для транзакции

Timeout Changed
Если значение свойства Timeout отлично от нуля, то оно определяет время допустимого простоя в миллисекундах. Если за указанный промежуток времени через транзакцию не прошло ни одного действия (запроса, фетча данных, фетча блоба), то автоматически будет выполен TimeoutAction

TimeoutAction
Это свойство возвращает действие, которое выполнятся при наступлении события Timeout. Оно описано следующим образом:
TTransactionAction = (TARollback, TARollbackRetaining, TACommit, TACommitRetaining);


TPBMode
Используя это свойство, можно настроить параметры транзакции. Его возможные параметры таковы:
TTPBMode = (tpbDefault, tpbReadCommitted, tpbRepeatableRead)


TRParams
В этом свойстве можно задать свои собственные параметры

UserKindTransaction
Используя это свойство, можно выбрать пользовательский вариант настроек параметров транзакции. Наиболее удобно работать в редакторе В«Edit Transaction ParametersВ», который можно вызвать из контекстного меню компонента.

TransactionID
Возвращает идентификатор транзакции. В Firebird начиная с версии 1.5 его можно так же получить из контекстной серверной переменной CURRENT_TRANSACTION.

State
property State: TTransactionState;
Свойство позволяет определить не только активность транзакции, но и находится ли она в состоянии завершения. Подробнее см. руководство пользователя тему В«Получение информации о состоянии транзакцииВ»

События

AfterEnd Changed
procedure (EndingTR: TFIBTransaction; Action: TTransactionAction; Force: Boolean);
Это событие генерируется при завершении транзакции

AfterSQLExecute
procedure (Query: TFIBQuery; SQLType: TFIBSQLTypes); Это событие генерируется после выполнения SQL.

AfterStart
procedure (Sender: Tobject);
Это событие генерируется после старта транзакции.

BeforeEnd
procedure (EndingTR: TFIBTransaction; Action: TTransactionAction; Force: Boolean);
Это событие генерируется после завершения транзакции.

BeforeSQLExecute
procedure (Query: TFIBQuery; SQLType: TFIBSQLTypes);
Это событие генерируется перед выполнением запроса.

BeforeStart
procedure (Sender: Tobject);
Это событие генерируется перед стартом транзакции

OnTimeout
procedure OnTimeOut(Sender: Tobject);
Это событие вызывается сразу же после закрытия соединения по таймауту.

OnIdleConnect
TOnIdleConnect=procedure(Sender:TFIBDatabase;IdleTicks:Cardinal;var Action:TActionOnIdle);
TActionOnIdle=(aiCloseConnect,aiKeepLiveConnect);

Это событие вызывается по таймауту, в нем можно принять решение о закрытии или удержание соединения, а так же произвести любые дополнительные действия.

Параметры обработчика:
IdleTicks:Cardinal – время в миллисекундах прошедшее с последней активности соединения.
Action:TActionOnIdle – действие которое необходимо выполнить по завершению обработчика.

Методы

function MainDatabase:TFIBDatabase;
Этот метод возвращает основную базу данных.

function FindDatabase(db: TFIBDatabase): Integer;
Этот метод возвращает индекс базы данных в рамках которой выполнятся транзакция.

New
function AddDatabase(db: TFIBDatabase):integer;
function AddDatabase(db: TFIBDatabase; const aTRParams: string);

Методы позволяют добавить в список коннектов еще один коннект. При старте транзакции она будет стартовать во всех коннектах, которые находятся в ее списке. Отличие этих методов друг от друга в том, что если коннект был добавлен первым методом, то транзакция в этом коннекте стартует с теми параметрами, которые прописаны у нее в свойстве TRParams. Если же коннект был добавлен вторым методом, то транзакция в этом коннекте стартует с параметрами которые были переданы в метод. При этом в других коннектах, она может иметь другие параметры. Подробнее см. GUID, тему В«Двухфазный коммитВ»

procedure CheckInTransaction;
Этот метод генерирует исключение, если транзакция активна.

procedure CheckNotInTransaction;
Этот метод генерирует исключение, если транзакция не активна.

procedure StartTransaction; virtual;
Этот метод стартует транзакцию.

procedure Commit; virtual;
Этот метод подтверждает транзакцию по Commit.

procedure CommitRetaining; virtual;
Этот метод подтверждает транзакцию по commitRetaining.

procedure Rollback; virtual;
Этот метод откатывает транзакцию по Rollback.

procedure RollbackRetaining; virtual;
Этот метод откатывает транзакцию по RollbackRetaining.

procedure ExecSQLImmediate(const SQLText:string);
Этот метод выполняет запрос с использованием isc_dsql_execute_immediate без подготовки ,
и, как следствие, без рутинных операций с Handle запросов. Подробней смотрите в IB API.

procedure SetSavePoint(const SavePointName:string);
Этот метод создает точку восстановления (Savepoint).

procedure RollBackToSavePoint(const SavePointName:string);
Этот метод отменяет все изменения, сделанные до точки восстановления (Savepoint).

procedure ReleaseSavePoint(const SavePointName: string);
Этот метод освобождает все точки восстановления (Savepoint).

procedure CloseAllQueryHandles;
Этот метод закрывает все Handle запросов, ассоциированных с этой транзакцией.

function IsReadCommitedTransaction:boolean;
Этот метод возвращает True, если транзакция имеет параметр ReadCommited.

procedure StartTransaction; override;
Этот метод стартует транзакцию.

function FIBQueryCount: integer;
Этот метод возвращает количество запросов, связанных с транзакцией.

function FIBDataSetsCount:integer;
Этот метод возвращает количество датасетов, связанных с транзакцией.