Re: Aktuellen Generatorwert eines Datensatz abfragen



Hallo Helmut,
Danke für den Hinweis. Ich verstehe irgendwie nicht, wie ich mir den Generatorwert vom Server holen soll. Bis jetzt hat der Server das schön brav alleine gemacht. Halt mit dem Nachteil das ich die ID nicht bekommen habe. Jetzt brauche ich sie aber. Also wäre Dein vorgeschlagener Ansatz schon gut, doch wie geht das? Ich habe mir IBDataset (IBX von Delphi 6) angeschaut und dort die Propertys im GeneratorField gesetzt

IBDataSet1.Database := IBDataBase1;
IBDataSet1.GeneratorField.Field := 'CID';
IBDataSet1.GeneratorField.Generator := 'C_ID';
IBDataSet1.GeneratorField.IncrementBy := 1;
IBDataSet1.GeneratorField.ApplyEvent := gamOnNewRecord;

Wenn ich das richtig verstehe, dann wird ApplyEvent ausgelöst wenn ein neuer Record in irgend einer Tabelle in der DB eingetragen wird.
Woher weiß ich dann, welchen Wert der Generator nun erzeugt hat? Komme ich da über IBDataset1.FieldValues['CID'] heran?
Ich erhalte leider die Fehlermeldung "validation error for column CID ***NULL***". Ist ja auch klar, CID ist mein PK-Feld für diese Tabelle und darf daher nicht! NULL sein.

Mein Buch Delphi 6 Datenbankprogrammierung und auch Dein Link helfen mir leider auch nicht weiter.

Wie schon erwähnt IBX von Delphi 6 und Firebird 1.5 wird hier verwendet.

Danke noch einmal
Klaus Dewald

P.S. IBObjects ist leider für dieses Projekt ausgeschlossen weshalb ich mit den Hinweisen auf FingerBirdy nicht so viel anfangen kann. Die IBX haben nicht die dort angesprochenen Propertys.
.