Перейти к основному содержимому

Транзакция

Стд::БазаДанных::Транзакция Доступность: Сервер

Объект встроенного языка для управления транзакцией базы данных.
Для упрощения работы с транзакциями в коде прикладного решения предполагается использование с модификатором исп. При объявлении переменной будет выполнено открытие новой транзакции (фактической или логической), а при выходе из области видимости она будет завершаться.

Пример

исп Транзакции.Начать()

для Запись из УчетныеЗаписи
знч Участник = новый Участники.Объект()
Участник.Код = Запись.Код
Участник.Записать()
Запись.Участник = Участник
;

// Транзакция будет автоматически зафиксирована в конце области видимости
// Или откачена, если выполение кода в области видимости завершилось исключением

Сравнение ссылочное

Иерархия типа

Базовые типы: Закрываемое, Контекст, Объект


Свойства

Ид

Доступность: Сервер ТолькоЧтение

Внутренний идентификатор транзакции.
Для идентификатора обещается только уникальность в рамках одного процесса ОС в котором он был получен, в течении достаточно длительного периода времени для использования его на практике в качестве идентификатора транзакции в логах.
Идентификатор не следует использовать для построения на его основе какой-либо логики.


Основная

Доступность: Сервер ТолькоЧтение

Основная: Булево

Признак основной транзакции.
Фактическая транзакция может быть только одна, все остальные транзакции, которые открываются в рамках действия существующей, будут являться логическими (далее — вложенными). Транзакция считается основной если она не является вложенной.


Методы

ВСтроку

Доступность: Сервер

ВСтроку(): Строка
Переопределение: ВСтроку

Возвращает строку вида "Transaction %Id".


Закрыть

Доступность: Сервер

Закрыть()
Переопределение: Закрыть

Закрывает текущую транзакцию.
Если закрытие происходит из-за выброса исключения — транзакция отменяется, иначе — фиксируется.


Откатить

Доступность: Сервер

Откатить()

Закрывает транзакцию и откатывает ее.
Повторный вызов метода приведет к исключению.


Фиксировать

Доступность: Сервер

Фиксировать()

Закрывает транзакцию и фиксирует ее.
Если транзакция находится в состоянии, при котором можно только отменить изменения транзакции (например, одна из вложенных транзакций была отменена), то при попытке фиксации изменений такой транзакции будет вызвано исключение ИсключениеНедопустимоеСостояниеТранзакции. Повторный вызов метода приведет к исключению.


Список унаследованных методов

Объект

ПолучитьТип, Представление