Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#13

Re: generator richtig verwenden

  Alt 8. Apr 2004, 22:18
Gibt es in IB ein Äquvalent zu den Package-variablen in Oracle? Also eine Variable, deren Wert sich nur in der UGA befindet.
Keine Session kann den Wert einer anderen überschreiben.
Dadurch könnte man unabhängig von parallen Transaktionen anderer Sessions herausfinden, welche ID der neue DS hat.
Eine IMHO eklige Lösung, aber vielleicht funktioniert es. Wenn nicht, dann warte bis IB oder FB ein Gegenstück zu RETURNING hat.
SQL-Code:
CREATE TRIGGER TABLE8_BI0 FOR TABLE8
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID (GEN_TABLE8_ID,1);

  Shema.Package.Variable := New.ID;
end
OT:
@Hansa
Übrigens,du verhinderst nicht, dass der User beim Öffnen der Tabelle mit einem anderen Programm irgendeinen Mist reinschreibt.
Bei einem INSERT sollte also immer die PK aus der Sequence beschrieben werden:
SQL-Code:
CREATE TRIGGER TABLE8_BI0 FOR TABLE8
ACTIVE BEFORE INSERT POSITION 0
AS
begin
    NEW.ID = GEN_ID (GEN_TABLE8_ID,1);
end
  Mit Zitat antworten Zitat