Ова страница је машински преведена. Прочитајте енглески оригинал. English

IBSurgeon библиотека

Firebird 2.5: Аутономне трансакције

Funkcija:

Pokreće deo koda u autonomnoj (nezavisnoj) transakciji. Korisno je u slučajevima kada

treba da podignete izuzetak, ali ne želite da promene u bazi budu poništene (rollback).

Ako se izuzeci podignu unutar tela bloka autonomne transakcije, promene se

poništavaju. Ako se blok izvrši do kraja, transakcija se potvrđuje (commit).

Nova transakcija se pokreće sa istim nivoom izolacije kao i postojeća.

Treba je koristiti oprezno kako bi se izbegli mrtve blokade (deadlocks).

Autor:

Adriano dos Santos Fernandes

Sintaksa:

in autonomous transaction

do

Primer:

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