Esta página foi traduzida por máquina. Leia o original em inglês. English

Biblioteca IBSurgeon

Firebird 2.5: Transações Autônomas

Função:

Executa um trecho de código em uma transação autônoma (independente). É útil em casos onde você

precisa levantar uma exceção, mas não deseja que as alterações no banco de dados sejam revertidas.

Se exceções forem levantadas dentro do corpo de um bloco de transação autônoma, as alterações são

revertidas. Se o bloco for executado até o final, a transação é confirmada.

A nova transação é iniciada com o mesmo nível de isolamento da transação existente.

Deve ser usada com cautela para evitar deadlocks.

Autor:

Adriano dos Santos Fernandes

Sintaxe:

in autonomous transaction

do

Exemplo:

create table log (

“date” timestamp,

msg varchar(60)

);

create exception e_conn ‘Connection rejected’;

set term !;

create trigger t_conn on connect

as

begin

if (current_user = ‘BAD_USER’) then

begin

in autonomous transaction

do

begin

insert into log (“date”, msg) values (current_timestamp, ‘Connection rejected’);

end

exception e_conn;

end

end!

set term ;!