Esta página fue traducida automáticamente. Lee el original en inglés. English

Biblioteca de IBSurgeon

Firebird 2.5: Transacciones Autónomas

Función:

Ejecuta un fragmento de código en una transacción autónoma (independiente). Es útil en casos donde

necesita lanzar una excepción pero no desea que los cambios en la base de datos se reviertan.

Si se lanzan excepciones dentro del cuerpo de un bloque de transacción autónoma, los cambios se

revientan. Si el bloque se ejecuta hasta el final, la transacción se confirma.

La nueva transacción se inicia con el mismo nivel de aislamiento que la existente.

Debe usarse con precaución para evitar interbloqueos.

Autor:

Adriano dos Santos Fernandes

Sintaxis:

in autonomous transaction

do

Ejemplo:

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 ;!