Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Firebird : Tabelle erstellen mit AutoInc-Feld

  Alt 24. Mai 2007, 20:49
Du solltest im Trigger bedingungslos die ID aus dem Generator eintragen.
Warum?
Es könnte sonst es zu Schlüsselverletzungen führen:
Der Generator steht bei 3, aber User trägt selbst 3 ein.
Beim nächsten Insert ohne dass der User eine Id angibt würde der Generator um eins erhöht und versucht eine weitere 3 einzufügen -> Kabumm

Wie kriegst du die Id nach einem Insert?
Bei einem Insert führst du das hier mit Query.Open aus (nicht ExecSql!):
SQL-Code:
INSERT INTO Produkte
  (ProductID
  ,Bezeichnung)
VALUES
  (:ProductID
  ,:Bezeichnung)
RETURNING Id
In der "Ergebnismenge" findest du die neue ID in der ersten Spalte.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat