Zitat von
alex517:
Zitat von
Nico80:
Wenn ich aber eine globale Transaktion benutze, in denen mehrere Tabellen bearbeitet werden, muss ich die Events erst erzeugen,
wenn die Transaktionen commitet werden. D.h. ich muss mir merken, was ich innerhalb einer Transaktion mache. Ist das zu kompliziert gedacht.
Kennt jemand ein Beispiel im netz? Bin ja wohl nicht der erste der sich mit dem Thema beschäftigt?!
POST_EVENT aktiviert man z.B. im After-INSERT|UPDATE|DELETE-Trigger der jeweiligen Tabelle.
Diese Events werden aber erst NACH einem Commit ausgelöst.
Du mußt die also darum keine Gedanken machen.
SQL-Code:
CREATE TRIGGER AUFTRAG_AIUD0 FOR AUFTRAG
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
begin
if (INSERTING) then POST_EVENT 'AUFTRAG_INSERT';
if (UPDATING) then POST_EVENT 'AUFTRAG_UPDATE';
if (DELETING) then POST_EVENT 'AUFTRAG_DELETE';
end
alex
Das ist aber wiederum Inerbase/Firebird abhängig. Außerdem habe ich hier den Nachteil,
dass ich nicht genau weiß welcher Datensatz sich geändert hat bzw. sogar gelöscht wurde.