GeneratorField ist eine Eigenschaft von TIBCustomDataSet (IBX), die dazu dient, die Behandlung von AutoIncrement-Feldern zu vereinfachen.
Man setzt im
OI den Feldnamen und den Generatornamen (der muss natürlich vorhanden sein) und bestimmt mit der Eigenschaft ApplyEvent, wann der neue Generatorwert geholt wird:
a) gamOnNewRecord
Wenn Du in der Komponente einen neuen Datensatz einfügst (beforeInsert). Der Vorteil davon ist, dass Du während der Bearbeitung des neuen Datensatzes schon weißt, welche ID der neue Datensatz bekommen wird (ist je nachdem für irgendwelche MasterDetail-Beziehungen hilfreich). Der Nachteil ist, dass bei einem Cancel der Generatorwert "verloren geht".
b) gamOnPost
Bevor der Datensatz gepostet wird, wird vom Generator ein neuer Wert abgerufen und in das Feld gesetzt. Vor- und Nachteil wie a) nur umgekehrt.
c) gamOnServer
Teilt der Komponente mit, dass sich der Server (durch Trigger) selbst um die Vergabe des AutoInc-Wertes kümmert. Wenn man die Trigger richtig gesetzt hat und das Programm den neuen ID-Wert nicht vor dem Posten wissen muss, dürfte das die beste Methode sein, da sie nicht die zusätzliche Netzwerkbelastung für das holen des Generatorwerts verursacht.
Grüße
Urs