Data.Win.ADODB.TCustomADODataSet.EnableBCD
Delphi
property EnableBCD: Boolean read FEnableBCD write FEnableBCD default True;
C++
__property bool EnableBCD = {read=FEnableBCD, write=FEnableBCD, default=1};
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
property | public | Data.Win.ADODB.pas Data.Win.ADODB.hpp |
Data.Win.ADODB | TCustomADODataSet |
Beschreibung
Gibt an, ob für numerische Werte das Gleitkomma- oder das BCD-Format verwendet wird.
Mit EnableBCD können Sie die Zuordnung zwischen numerischen Feldern und den entsprechenden Feldklassen steuern. Wenn die Eigenschaft den Wert True (Standardwert) hat, werden beim Erstellen der Feldobjekte alle Felder der Typen adDecimal und adNumeric der Klasse TBCDField zugeordnet. Bei False wird für diese Felder die Klasse TFloatField verwendet.
Die Zuordnung bestimmt, ob in das Gleitkomma- oder in das BCD-Format (Binary Coded Decimal) konvertiert wird. Bei BCD-Werten treten die Rundungsfehler nicht auf, die bei Berechnungen mit Gleitkommazahlen entstehen (so führt beispielsweise 3 * (2/3) zu 2,00000000001).
Wenn Sie persistente Feldobjekte verwenden (die Sie z. B. mit dem Felder-Editor erstellt haben), kann die Klassenzuordnung eines bestimmten Feldes zu einem Konflikt mit der Einstellung von EnableBCD führen. So könnten beispielsweise für drei numerische Felder einer Tabelle unabhängig vom EnableBCD-Wert die Klassen TFloatField, TBCDField und TVariantField verwendet werden. Es ist bedeutend flexibler, die Klasse für jedes Feld gesondert festzulegen.
Hinweis: Verwenden Sie für numerische Werte mit mehr als 4 Nachkommastellen die Klasse TFloatField. Für TBCDField-Felder wird das Währungsformat verwendet, das immer 4 Dezimalstellen hat.
Hinweis: Verwenden Sie für sehr große Feldwerte mit mehr als 19 signifikanten Stellen persistente Feldobjekte des Typs TVariantField. Die Klassen TFloatField und TBCDField eignen sich nicht für Felder dieser Größe. Da Sie bei TVariantField über Strings auf die Felddaten zugreifen können, werden die Werte nicht aufgrund von Größenbeschränkungen abgeschnitten. Allerdings können Sie mit solchen Strings keine direkten Berechnungen durchführen.