Feldwerte konvertieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Felder - Index

Die Konvertierungseigenschaften wandeln einen Datentyp in einen anderen um. So konvertiert beispielsweise die Eigenschaft AsString numerische und Boolesche Werte in entsprechende Strings. In der folgenden Tabelle sind die verschiedenen Konvertierungseigenschaften von Feldkomponenten aufgeführt. Sie können ihr auch entnehmen, welche Eigenschaften für welchen Typ verwendet werden können: Konvertierungsfunktionen für Feldkomponenten



Feldkomponenten AsVariant AsString AsInteger AsFloat, AsCurrency, AsBCD AsDateTime, AsSQLTimeStamp AsBoolean

TStringField

Ja

NA

Ja

Ja

Ja

Ja

TWideStringField

Ja

Ja

Ja

Ja

Ja

Ja

TIntegerField

Ja

Ja

NA

Ja

TSmallIntField

Ja

Ja

Ja

Ja

TWordField

Ja

Ja

Ja

Ja

TLargeintField

Ja

Ja

Ja

Ja

TFloatField

Ja

Ja

Ja

Ja

TCurrencyField

Ja

Ja

Ja

Ja

TBCDField

Ja

Ja

Ja

Ja

TFMTBCDField

Ja

Ja

Ja

Ja

TDateTimeField

Ja

Ja

Ja

Ja

TDateField

Ja

Ja

Ja

Ja

TTimeField

Ja

Ja

Ja

Ja

TSQLTimeStampField

Ja

Ja

Ja

Ja

TBooleanField

Ja

Ja

TBytesField

Ja

Ja

TVarBytesField

Ja

Ja

TBlobField

Ja

Ja

TMemoField

Ja

Ja

TGraphicField

Ja

Ja

TVariantField

NA

Ja

Ja

Ja

Ja

Ja

TAggregateField

Ja

Ja



Beachten Sie, dass sich einige Tabellenspalten auf mehrere Konvertierungseigenschaften beziehen (z.B. AsFloat, AsCurrency und AsBCD), weil alle Felddatentypen, die eine dieser Eigenschaften unterstützen, stets auch die anderen unterstützen.

Beachten Sie außerdem, dass die Methode AsVariant für die Konvertierung zwischen allen Datentypen benutzt werden kann. Auch bei allen Datentypen, die oben nicht aufgeführt sind, ist AsVariant (als einzige Option) verfügbar. Verwenden Sie im Zweifelsfall einfach AsVariant.

In bestimmten Fällen sind Konvertierungen nicht möglich. So kann mit AsDateTime beispielsweise ein String nur dann in einen Wert des Typs Date, Time oder DateTime konvertiert werden, wenn er ein erkennbares Datums-/Zeitformat enthält. Ein fehlgeschlagener Konvertierungsversuch führt zu einer Exception.

Manchmal ist die Konvertierung möglich, aber das Ergebnis nicht aussagekräftig. Was geschieht beispielsweise, wenn ein Data.DB.TDateTimeField-Wert in ein Gleitkommaformat konvertiert wird? AsFloat konvertiert den Datumsteil des Feldes in die Anzahl der Tage seit dem 31.12.1899 und den Zeitanteil des Feldes in einen Bruchteil von 24 Stunden. In der folgenden Tabelle sind die zulässigen Konvertierungen aufgeführt, die zu speziellen Ergebnissen führen:

Spezielle Konvertierungsergebnisse :



Konvertierung Ergebnis

String zu Boolean

Konvertiert die Strings "Wahr", "Falsch", "Ja" und "Nein" in einen Booleschen Wert. Andere Werte lösen eine Exception aus.

Float zu Integer

Rundet einen Gleitkommawert auf den nächsten Integer-Wert.

DateTime oder SQLTimeStamp zu Float

Konvertiert einen Datumswert in die Anzahl der Tage seit dem 31.12.1899 und die Zeit in einen Bruchteil von 24 Stunden.

Boolean zu String

Konvertiert einen beliebigen Booleschen Wert in den String "True" oder "False".



In bestimmten Fällen sind Konvertierungen nicht möglich, und jeder Versuch führt zu einer Exception.

Die Konvertierung wird immer vor der Zuweisung durchgeführt. Die folgende Anweisung konvertiert beispielsweise den Wert von CustomersCustNo in einen String und weist diesen einem Eingabefeld zu:



 Edit1.Text := CustomersCustNo.AsString;



 Edit1->Text = CustomersCustNo->AsString;



Umgekehrt weist die folgende Anweisung den Text eines Eingabefeldes dem Feld CustomersCustNo als Integer zu:



 MyTableMyField.AsInteger := StrToInt(Edit1.Text);



 MyTableMyField->AsInteger = StrToInt(Edit1->Text);



Siehe auch