GdcBase.TgdcBase.Transaction
Материал из GedeminWiki
| Модуль: gdcBase.pas | Тип: property | Видимость: public | Принадлежит: TgdcBase |
Delphi:
property Transaction: TIBTransaction read GetTransaction write SetTransaction;
Описание
Транзакция.
Использование транзакции бизнес-объекта во внешних запросах
Находимся внутри сложного процесса изменения
- Если Вам надо только что-то прочитать за пределами процесса, то используем gdcBaseManager.ReadTransaction. Она всегда есть, она всегда открыта.
- Если Вам надо что-то изменить или прочитать данные, которые меняются текущим процессом, то используем Self.Transaction. Не надо проверять открыта она или нет. Она ДОЛЖНА быть открыта. Если нет, то это ошибка в коде ядра или в коде настройки и надо исправлять саму ошибку, а не проверять ее следствие.
Находимся за пределами процесса изменения
- Если Вам надо только что-то прочитать, то используем gdcBaseManager.ReadTransaction. Она всегда есть, она всегда открыта.
- Если Вам надо что-то изменить, то создаем и используем свою транзакцию. Ни в коем случае не дергаем Self.Transaction или gdcObject.Transaction. Одиночные изменения можно делать gdcBaseManager.ExecSingleQuery.
Внутри процесса означает в методах DoAfterСustomProcess, CustomInsert, CustomModify и CustomDelete.
