Data.DB.TField.AutoGenerateValue
Delphi
property AutoGenerateValue: TAutoRefreshFlag read FAutoGenerateValue write FAutoGenerateValue default arNone;
C++
__property TAutoRefreshFlag AutoGenerateValue = {read=FAutoGenerateValue, write=FAutoGenerateValue, default=0};
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
property | published | Data.DB.pas Data.DB.hpp |
Data.DB | TField |
Beschreibung
Gibt an, ob die Feldwerte vom Server generiert, anstatt vom Benutzer eingegeben werden können.
Mit AutoGenerateValue legen Sie fest, ob Feldwerte von der Datenbank generiert werden können. Dabei handelt es sich um Zählerfelder und um Felder mit Vorgabewerten.
Einige Datenbanktreiber können nicht feststellen, welche Werte automatisch vom Server geliefert wurden. Dadurch können beim Eintragen der Bearbeitungen Probleme verursacht werden. In diesen Fällen kann diese Information durch das Setzen der Eigenschaft AutoGenerateValue bereitgestellt werden. Folgende Werte stehen für die Eigenschaft AutoGenerateValue zur Verfügung: arAutoInc für Zählerfelder, arDefault für Felder mit Vorgabewerten und arNone für Felder, deren Werte nicht automatisch generiert werden.
AutoGenerateValue wird nicht immer benötigt. Felder mit dem AutoGenerateValue-Wert arNone können immer noch aktualisiert werden, wenn die Metadaten des Treibers angeben, dass es sich um einen Standardwert oder Autoinkrementwert handelt. Es ist jedoch ratsam, diese Informationen anzugeben, da die Metadaten nicht von allen Treibern geliefert werden.
Wenn Sie AutoGenerateValue für Felder verwenden, deren Werte von der Datenbank generiert werden, müssen Sie die Eigenschaft bei jedem dieser Felder auf arAutoInc oder arDefault setzen. Der Grund liegt darin, dass die Anwendung beim Eintragen der Datensätze sofort eine Abfrage ausführt, um die automatisch generierten Werte abzurufen. Wenn Sie AutoGenerateValue bei einem automatisch generierten Feld auf arNone gesetzt lassen, sucht die Abfrage nach einem Datensatz mit einem leeren Wert in diesem Feld. Natürlich kann dann der richtige Datensatz nicht ermittelt werden.
Warnung: AutoGenerateValue kann fehlschlagen, wenn sich der automatisch generierte Feldwert in einem Schlüsselfeld befindet. Die Abfrage, die den neuen Feldwert abruft, kann den Datensatz, der gerade eingetragen wurde, nicht immer eindeutig ermitteln.
Anmerkung: Wenn Sie den Wert von AutoGenerateValue ändern, während die Datenmenge des Feldes geöffnet ist, wird eine Exception ausgelöst. AutoGenerateValue arbeitet daher nur mit persistenten Feldkomponenten, die beim Schließen der Datenmenge bestehen bleiben.