Транзакция
Стд::БазаДанных::Транзакция Доступность: Сервер
Объект встроенного языка для управления транзакцией базы данных.
Для упрощения работы с транзакциями в коде прикладного решения предполагается использование с модификатором исп.
При объявлении переменной будет выполнено открытие новой транзакции (фактической или логической), а при выходе из области видимости она будет завершаться.
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Закрываемое, Контекст, Объект
Примеры
Общие примеры
метод СоздатьДочернееПодразделение(ПодразделениеСсылка: Подразделения.Ссылка)
исп Транзакции.Начать()
знч ПодразделениеОбъект = ПодразделениеСсылка.ЗагрузитьОбъект()
ПодразделениеОбъект.Родитель = ПодразделениеСсылка
ПодразделениеОбъект.Записать()
// Транзакция будет автоматически зафиксирована в конце области видимости
// Или откачена, если выполение кода в области видимости завершилось исключением
;
Свойства
Ид
Доступность: Сервер
ТолькоЧтение
Ид: СтрокаВнутренний идентификатор транзакции.
Для идентификатора обещается только уникальность в рамках одного процесса ОС в котором он был получен, в течении достаточно длительного периода времени для использования его на практике в качестве идентификатора транзакции в логах.
Идентификатор не следует использовать для построения на его основе какой-либо логики.
Основная
Доступность: Сервер
ТолькоЧтение
Основная: БулевоПризнак основной транзакции.
Фактическая транзакция может быть только одна, все остальные транзакции, которые открываются в рамках действия существующей, будут являться логическими (далее — вложенными).
Транзакция считается основной если она не является вложенной.
Методы
ВСтроку
Доступность: Сервер
ВСтроку(): Строка"Transaction %Id".
Переопределение
Объект::ВСтроку
Закрыть
Доступность: Сервер
Закрыть()Если закрытие происходит из-за выброса исключения — транзакция отменяется, иначе — фиксируется.
Переопределение
Закрываемое::Закрыть
Откатить
Доступность: Сервер
Откатить()Повторный вызов метода приведет к исключению.
Фиксировать
Доступность: Сервер
Фиксировать()Если транзакция находится в состоянии, при котором можно только отменить изменения транзакции (например, одна из вложенных транзакций была отменена), то при попытке фиксации изменений такой транзакции будет вызвано исключение ИсключениеНедопустимоеСостояниеТранзакции. Повторный вызов метода приведет к исключению.