Einzelnen Beitrag anzeigen

Elvis

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

Re: Firebird : Tabelle erstellen mit AutoInc-Feld

  Alt 25. Mai 2007, 17:41
Zitat von alex517:
Zitat von Elvis:
Vor Firebird 2.0 war kein konsistentes Handling von generator-basierten Pks möglich.
Erst die neue Returning-Clause erlaubt es.
Das ist nicht richtig!
Nicht zu schnell widersprechen! ( )
Zitat:
Ich habe generell folgende Vorgehensweise:...
Die hattest nicht nur du, die hatte jeder andere auch, der die ID des neuen Datensatzes in der dunklen Pre-FB2.0-Ära brauchte.
Zitat:
Ich brauche also keine extra SP und ein "konsistentes Handling von generator-basierten Pks"
ist auch auch vor FB 2.0 gewährleistet.
Und ich hoffe, dass du in der Doku deiner Software hinterlegt hast, dass niemand einen Wert für die ID angibt, außer er hat ihn vorher zu Fuss aus dem Generator geholt.
Ansonsten schreibt einer eine 1000 rein und irgendwann, 3 Wochen später, will dein Programm über den friemeligen "Generator abfragen & Wert beim Insert mitgeben"-Weg einen Datensatz einfügen und es knallt! Nun, irgendwann musste der Generator ja die 1000 erreichen.
Zitat:
Unter FB2.x kann Rückgabe der ID wie Elvis schrieb mit "INSERT .. RETURNING ID" verfolgen.
Damit entfällt der Punkt 3.
Den Trigger würde ich aber immer beibehalten.
Natürlich braucht man den Trigger, er sollte die ID aber bedingungslos aus dem Generator setzen, auch wenn beim Insert schon ein Wert dafür angegeben wurde.

Hatte ich das wirklich so unverständlich geschrieben?
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