Cette page a été traduite automatiquement. Lisez l'original en anglais. English

Bibliothèque IBSurgeon

Firebird 2.5 : Transactions autonomes

Function:

Exécute un bloc de code dans une transaction autonome (indépendante). C’est utile dans les cas où vous

devez lever une exception mais ne souhaitez pas que les modifications de la base de données soient annulées.

Si des exceptions sont levées à l’intérieur du corps d’un bloc de transaction autonome, les modifications sont

annulées. Si le bloc s’exécute jusqu’à la fin, la transaction est validée.

La nouvelle transaction est initiée avec le même niveau d’isolation que celle existante.

Doit être utilisé avec prudence pour éviter les interblocages.

Auteur :

Adriano dos Santos Fernandes

Syntaxe :

in autonomous transaction

do

Exemple :

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