Ich hab grad mal die beforeInsert Methode aus meinem DataSet entfernt:
Delphi-Quellcode:
procedure TDatenModul.IBDataSet_AUTBeforeInsert(DataSet: TDataSet);
begin
{self.IBQuery_Get_AUT_GEN_ID.Open();
self.IBDataSet_AUTID.AsInteger := DatenModul.IBQuery_Get_AUT_GEN_IDGEN_ID.AsInteger + 1;
//ShowMessage(IntToStr(DatenModul.IBQuery_Get_AUT_GEN_IDGEN_ID.AsInteger + 1));
self.IBQuery_Get_AUT_GEN_ID.Close(); }
end;
Jetzt auf einmal kommt er über die Stelle hinweg; meckert dafür aber, dass ich das Feld ID nicht belege.
Ist mir völlig unverständlich, eildieweil ich mir meinen Trigger noch mal genau angeschaut hab, da ist nix mit if new.id is null; da steht:
SQL-Code:
CREATE TRIGGER AUT_BI0 FOR AUT
ACTIVE BEFORE INSERT POSITION 0
AS
begin
new.ID = gen_id(gen_aut_id,1);
end
^
Das heißt, der müsste IN JEDEN FALL eine neue ID generieren. Funzt aber nicht. Hier is der Wurm drin!
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.