Deze pagina is automatisch vertaald. Lees het Engelse origineel. English

IBSurgeon-bibliotheek

Firebird 2.5: Autonome transacties

Functie:

Voert een stuk code uit in een autonome (onafhankelijke) transactie. Dit is handig in gevallen waarin u

een uitzondering wilt opwerpen maar niet wilt dat de databasewijzigingen worden teruggedraaid.

Als er uitzonderingen worden opgeworpen binnen de body van een autonoom transactieblok, worden de wijzigingen

teruggedraaid. Als het blok tot het einde wordt uitgevoerd, wordt de transactie vastgelegd.

De nieuwe transactie wordt gestart met hetzelfde isolatieniveau als de bestaande transactie.

Moet met voorzichtigheid worden gebruikt om deadlocks te voorkomen.

Auteur:

Adriano dos Santos Fernandes

Syntax:

in autonomous transaction

do

Voorbeeld:

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