GdcBase.TgdcBase.Transaction
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (Новая страница: «{{PropertyDef_Template|unit=gdcBase|class=TgdcBase|visibility=public|src=property Transaction: TIBTransaction read GetTransaction write SetTransaction;}} == Опи…») |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
{{PropertyDef_Template|unit=gdcBase|class=TgdcBase|visibility=public|src=property Transaction: TIBTransaction read GetTransaction write SetTransaction;}} | {{PropertyDef_Template|unit=gdcBase|class=TgdcBase|visibility=public|src=property Transaction: TIBTransaction read GetTransaction write SetTransaction;}} | ||
| − | |||
== Описание == | == Описание == | ||
| − | |||
<onlyinclude> | <onlyinclude> | ||
Транзакция. | Транзакция. | ||
</onlyinclude> | </onlyinclude> | ||
| − | |||
=== Использование транзакции бизнес-объекта во внешних запросах === | === Использование транзакции бизнес-объекта во внешних запросах === | ||
| − | |||
==== Находимся внутри сложного процесса изменения ==== | ==== Находимся внутри сложного процесса изменения ==== | ||
| − | |||
# Если Вам надо только что-то прочитать за пределами процесса, то используем gdcBaseManager.ReadTransaction. Она всегда есть, она всегда открыта. | # Если Вам надо только что-то прочитать за пределами процесса, то используем gdcBaseManager.ReadTransaction. Она всегда есть, она всегда открыта. | ||
# Если Вам надо что-то изменить или прочитать данные, которые меняются текущим процессом, то используем Self.Transaction. Не надо проверять открыта она или нет. Она ДОЛЖНА быть открыта. Если нет, то это ошибка в коде ядра или в коде настройки и надо исправлять саму ошибку, а не проверять ее следствие. | # Если Вам надо что-то изменить или прочитать данные, которые меняются текущим процессом, то используем Self.Transaction. Не надо проверять открыта она или нет. Она ДОЛЖНА быть открыта. Если нет, то это ошибка в коде ядра или в коде настройки и надо исправлять саму ошибку, а не проверять ее следствие. | ||
| − | |||
==== Находимся за пределами процесса изменения ==== | ==== Находимся за пределами процесса изменения ==== | ||
| − | |||
# Если Вам надо только что-то прочитать, то используем gdcBaseManager.ReadTransaction. Она всегда есть, она всегда открыта. | # Если Вам надо только что-то прочитать, то используем gdcBaseManager.ReadTransaction. Она всегда есть, она всегда открыта. | ||
# Если Вам надо что-то изменить, то создаем и используем свою транзакцию. Ни в коем случае не дергаем Self.Transaction или gdcObject.Transaction. Одиночные изменения можно делать gdcBaseManager.ExecSingleQuery. | # Если Вам надо что-то изменить, то создаем и используем свою транзакцию. Ни в коем случае не дергаем Self.Transaction или gdcObject.Transaction. Одиночные изменения можно делать gdcBaseManager.ExecSingleQuery. | ||
Внутри процесса означает в методах DoAfterСustomProcess, CustomInsert, CustomModify и CustomDelete. | Внутри процесса означает в методах DoAfterСustomProcess, CustomInsert, CustomModify и CustomDelete. | ||
Версия 15:55, 30 марта 2011
| Модуль: 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.