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

Транзакция

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

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

Сравнение

Ссылочное

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

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


Примеры

Общие примеры

метод СоздатьДочернееПодразделение(ПодразделениеСсылка: Подразделения.Ссылка)
исп Транзакции.Начать()

знч ПодразделениеОбъект = ПодразделениеСсылка.ЗагрузитьОбъект()
ПодразделениеОбъект.Родитель = ПодразделениеСсылка
ПодразделениеОбъект.Записать()

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

Свойства

Ид

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

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


Основная

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

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

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


Методы

ВСтроку

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

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

Переопределение
Объект::ВСтроку


Закрыть

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

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

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


Откатить

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

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


Фиксировать

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

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


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

Закрываемое

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

Объект

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

ПолучитьТип

Представление