Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: FireDac den AutoInc value in onBeforePost abfragen. (ist immer -x)

  Alt 3. Sep 2022, 17:38
Der Kernpunkt ist hier UpdateOptions.FetchGeneratorsPoint = gpImmediate . Das sorgt laut Dokumentation dafür, dass die ID schon beim Insert bzw. Append ermittelt wird.

...
Code:
Mode         Description

gpNone       Do not fetch generator values.
gpImmediate  Fetch values right after starting to append a new record. Normally, this is the value for the TDataSet.Insert or Append methods.
gpDeferred   Fetch values right before posting a new record to a database. Normally, this is the value for the TDataSet.Post or ApplyUpdates methods.
[/QUOTE]


Die Doku habe ich gelesen und so eingestellt, meine ich zumindest. Ich hätte erwartet dass bei onBeforePost den Generatorwert bereits gesetzt ist. Genau das ist nicht der Fall. Auch interessant ist, dass das PK Feld, auch wenn ich den Wert setze, in der DB immer als null übertragen wird. Deshalb feuert der Trigger der DB und setzt den PK Wert. Ich habe ein Demo Programm erstelle auf die gleiche DB und die Connection über IBObjects erstellt. Hier ist der Generator des PKs bei OnBeforePost vorhanden und auch so zur DB übertragen. Es liegt also nicht an der DB sondern an irgend einer Einstellung in FireDac. Ich verwende übrigens Delphi 11.1
  Mit Zitat antworten Zitat