Re: ODP: [firebird-support] Before Insert or After Insert trigger?

2018-09-07 Thread Luigi Siciliano luigi...@tiscalinet.it [firebird-support]

Hi,

Il 06/09/2018 10.41, Karol Bieniaszewski liviusliv...@poczta.onet.pl 
[firebird-support] ha scritto:
If you need to update same table then „before” update trigger is the 
best choice.


>>Updating another table from a Before trigger is made in a transaction

>>that rolling back if exception occurs?

If you do not run it in different transaction context - like IN 
AUTONOMOUS TRANSACTION - then yes



Ok, I think I asked an incorrect question
I could explain better:
Updating another table from a Before trigger is made in a transaction 
that rolling back if exception occurs even I have hundred rows in table 
that fire a before insert/update trigger and if the exception occurs in 
hundredth row? or trigger is fired row by row in table and this 
behaviour not occurs and the update made by row 1..99 are confirmed even 
occurs an exception in row 100?


Thanks.
--

Luigi Siciliano
--



ODP: [firebird-support] Before Insert or After Insert trigger?

2018-09-06 Thread Karol Bieniaszewski liviusliv...@poczta.onet.pl [firebird-support]
Hi,

>> Now I need to set a fields in the same table like this to track the 
>>updates performed:

If you need to update same table then „before” update trigger is the best 
choice.
If you use after and run there UPDATE command you must take into accout 
recursive call.
Your update command run then triggers once again and if your check condition do 
not stop another UPDATE command 
you got endless recursion, stopped in some point by engine with an error

>>Updating another table from a Before trigger is made in a transaction 
>>that rolling back if exception occurs?

If you do not run it in different transaction context - like IN AUTONOMOUS 
TRANSACTION - then yes 


regards,
Karol Bieniaszewski

Od: Luigi Siciliano luigi...@tiscalinet.it [firebird-support]
Wysłano: czwartek, 6 września 2018 08:53
Do: firebird-support@yahoogroups.com
Temat: [firebird-support] Before Insert or After Insert trigger?

Hallo,

   I have an After Insert/Update trigger for a table to update another 
table like this:



   if (NEW.AGGIORNA_CONDIZIONI = 1) then
     begin
   update
     ARTICOLI_CONDIZIONI_CLIENTI ACC
   SET

       
     end
   else if ...



Now I need to set a fields in the same table like this to track the 
updates performed:

CONDIZIONI_AGGIORNATE = NEW.AGGIORNA_CONDIZIONI,

AGGIORNA_CONDIZIONI = 0 /* no conditions to update */


To do this I must change from After Insert/Update trigger in Before 
Insert/Update trigger.

Is this safe or I must do other behaviour?

Updating another table from a Before trigger is made in a transaction 
that rolling back if exception occurs?

Thanks.

-- 

Luigi Siciliano
--







++

Visit http://www.firebirdsql.org and click the Documentation item
on the main (top) menu.  Try FAQ and other links from the left-side menu there.

Also search the knowledgebases at http://www.ibphoenix.com/resources/documents/ 

++


Yahoo Groups Links