Einzelnen Beitrag anzeigen

cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#1

InterBase Trigger wird nicht ausgeführt

  Alt 7. Jan 2007, 11:07
Datenbank: InterBase • Version: 6.5 • Zugriff über: IBconsole - Delphi 2006
Hallo,
fange gerade mit Interbase an, komme leider nciht weiter.....
Habe z.Z. zwei Tabellen: Kunden und Anrede
Zugriff aus Delphi2006 heraus über:
1xTIBDataBase, 1xTIBTransaction, TIBTable (kunden), TIBTable (anrede), 2xDataSource


Es gibt einen Generator (GENID) und einen Trigger (AUTOINC) für Kunden:

SET TERM ^ ;
CREATE TRIGGER "AUTOINC" FOR "kunden.dbf"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
new.ID = GEN_ID(GENID, 1);
END
^
COMMIT WORK ^
SET TERM ;^

Dieser Trigger funktioniert auch richtig (aus meinem Programm heraus o.k., IBConsole verlangt manuelle Eingabe des Kunden.ID), das ID-Feld wird um 1 jeweils erhöht.

Meine zweite Tabelle: Anrede (Felder: ID, Anrede) besitzt auch einen Generator (GENID_0) und einen Trigger (AutoInc0), aber beim Speichern eines neuen Datensatzes scheint der Trigger nicht zu funktionieren und es es gibt eine Fehlermeldung (ID-Feld darf nicht leer bleiben), der Trigger sieht so aus:

SET TERM ^ ;
CREATE TRIGGER "AutoInc0" FOR "anrede.dbf"
ACTIVE BEFORE INSERT POSITION 0
as
begin
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GENID_0, 1);
end
^

COMMIT WORK ^
SET TERM ;^

Wo ist der Fehler?
  Mit Zitat antworten Zitat