Questa pagina è stata tradotta automaticamente. Leggi l'originale in inglese. English

Libreria IBSurgeon

Firebird 2.5: Transazioni Autonome

Funzione:

Esegue un blocco di codice in una transazione autonoma (indipendente). È utile nei casi in cui

è necessario sollevare un’eccezione ma non si desidera che le modifiche al database vengano annullate (rollback).

Se vengono sollevate eccezioni all’interno del corpo di un blocco di transazione autonoma, le modifiche vengono

annullate (rollback). Se il blocco viene eseguito fino alla fine, la transazione viene committata.

La nuova transazione viene avviata con lo stesso livello di isolamento di quella esistente.

Deve essere usata con cautela per evitare deadlock.

Autore:

Adriano dos Santos Fernandes

Sintassi:

in autonomous transaction

do

Esempio:

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