Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.390 Beiträge
 
Delphi 12 Athens
 
#1

Trigger zur Laufzeit Syntax ?

  Alt 26. Nov 2007, 12:41
Datenbank: Firebird • Version: 2.0 • Zugriff über: Zeos
Hallo alle miteinander...

nach Stunden des Suchens und Probierens möchte ich Euch mal wieder belästigen

Ich möchte zur Laufzeit einen Trigger in die Tabelle eintragen.

- die Syntax des Triggers in der Tabelle ist klar...
- der Generator ist erstellt...
- die Tabelle ist erstellt

so soll der Trigger in der Tabelle ankommen...

Delphi-Quellcode:
create trigger ANLAGEN_BI for ANLAGEN active before INSERT Position 0
 as
   begin
     if (new.id is null) then
       new.id = gen_id(idfeld_gen,1)
   end
und damit habe ich es aus der Anwendung heraus versucht...

Delphi-Quellcode:
DMDB.ZQueryDiv.SQL.Text:= 'create trigger ANLAGEN_BI for ANLAGEN active before INSERT Position 0 as ';
DMDB.ZQueryDiv.SQL.Add('begin ');
DMDB.ZQueryDiv.SQL.Add('if (new.id is null) then ');
DMDB.ZQueryDiv.SQL.Add('new.id = gen_id(idfeld_gen,1) ');
DMDB.ZQueryDiv.SQL.Add('end');
DMDB.ZQueryDiv.ExecSQL;
...der Compiler meckert immer über das End in Zeile 5

...viel kann es nicht sein... aber ich habe schon diverse Varianten probiert wie QuotedStr etc.

Danke für Eure Hilfe...
  Mit Zitat antworten Zitat