Einzelnen Beitrag anzeigen

Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#30

Re: Interbase: Generierte ID ermitteln ?

  Alt 16. Okt 2004, 10:39
Zitat von Ralf Stehle:
Ich kapiere das mit Generator und Trigger nicht.

Ich habe in IBExpert einen Generator Gen_UDat eingegeben, das hat scheinbar geklappt.
Danach habe ich bei Trigger folgende Anweisung gemacht

SQL-Code:
INSERT TRIGGER UDAT_BI0
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  if (new.id is null) then new.id=gen_id(gen_udat,1);
end
Müsste jetzt nicht automatisch das Feld ID hochgezählt werden ?
Bei Einfügen kommt aber leider immer noch die Fehlermeldung, ID darf nicht Null sein
Hi,
der trigger ist nicht richtig definiert.
Das muß so heißen
SQL-Code:
CREATE TRIGGER DeinTriggerName FOR DeineTabelle
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  if (new.id is null) then new.id=gen_id(gen_udat,1);
end
Und ja, du kannst ihn auch aus Delphi heraus erzeugen. Dazu benötigst du die Komponente IBScript aus dem neuesten IBXpress Update (oder was vergleichbares).

Gruß
ken

edit: sql-skript ausgebessert Crate -> Create
Ein Objekt ist eine zur Ausführungszeit vorhandene für seine Instanzvariablen Speicherplatz allokierende Instanz, die sich gemäß dem Protokoll ihrer Klasse verhält.
  Mit Zitat antworten Zitat