GdcBase.TgdcBase.Transaction

Материал из GedeminWiki

Перейти к: навигация, поиск
 Модуль: gdcBase.pas   Тип: property   Видимость: public   Принадлежит: TgdcBase 

Delphi:

 property Transaction: TIBTransaction read GetTransaction write SetTransaction;

Описание

Транзакция.

Использование транзакции бизнес-объекта во внешних запросах

Находимся внутри сложного процесса изменения

  1. Если Вам надо только что-то прочитать за пределами процесса, то используем gdcBaseManager.ReadTransaction. Она всегда есть, она всегда открыта.
  2. Если Вам надо что-то изменить или прочитать данные, которые меняются текущим процессом, то используем Self.Transaction. Не надо проверять открыта она или нет. Она ДОЛЖНА быть открыта. Если нет, то это ошибка в коде ядра или в коде настройки и надо исправлять саму ошибку, а не проверять ее следствие.

Находимся за пределами процесса изменения

  1. Если Вам надо только что-то прочитать, то используем gdcBaseManager.ReadTransaction. Она всегда есть, она всегда открыта.
  2. Если Вам надо что-то изменить, то создаем и используем свою транзакцию. Ни в коем случае не дергаем Self.Transaction или gdcObject.Transaction. Одиночные изменения можно делать gdcBaseManager.ExecSingleQuery.

Внутри процесса означает в методах DoAfterСustomProcess, CustomInsert, CustomModify и CustomDelete.

Личные инструменты