Использование транзакций Назад В начало Вперед

Транзакция служит для организации дополнительной защиты от сбоев: сбой в сети, отсоединение от БД и т.д.

Транзакция объединяет группу последовательных операторов, при исполнении которых в случае сбоя происходит откатка на начальную позицию транзакции.

<транзакция> = beginConcurentTransaction <SQL-операторы>
  (endConcurentTransaction | abortConcurentTransaction)

beginConcurentTransaction - начать транзакцию. Запоминаются Ваши изменения всей БД, и при аварийном выходе из транзакции производится откатка БД к исходному состоянию.

<SQL-операторы> - операторы работы с БД, см. "Работа с БД (SQL). ".

endConcurentTransaction - нормальное завершение транзакции.

abortConcurentTransaction - аварийный выход из транзакции.

Кроме названного варианта существуют еще два способа задать транзакцию (устаревшие):

beginFileTransaction - запоминаются Ваши изменения текущей таблицы БД, и при аварийном выходе из транзакции производится откатка данной таблицы к исходному состоянию.

Для СУБД Oracle все варианты транзакции работают одинаково и осуществляют откатку всей БД.

При проектировании интерфейса могут быть использованы два метода разрешения конфликтов: пассивное разрешение конфликта и управление транзакцией.

Необходимо учитывать, что модификация и удаление записи в режиме транзакции возможна только в том случае, если эта запись была считана в режиме транзакции. Для записи взятой вне транзакции достаточно вызвать последовательно методы PushPos и PopPos.

При необходимости можно реализовать активный способ блокировки. Для этого необходимо установить активный режим блокировки и взять текущую запись с блокировкой. Если это невозможно сделать - закрыть все поля от модификации.

По умолчанию в системе применяется пассивный метод разрешения конфликтов.