項目値の変換

提供: RAD Studio
移動先: 案内検索

フィールド コンポーネントでの作業:インデックス への移動

変換プロパティは,データ型を変換しようと試みます。たとえば AsString プロパティは,数値と論理値を文字列表現に変換します。次の表に,項目コンポーネントの変換プロパティの一覧と,項目コンポーネントのクラス別に推奨されるプロパティを示します。



項目コンポーネント AsVariant AsString AsInteger AsFloat, AsCurrency, AsBCD AsDateTime, AsSQLTimeStamp AsBoolean

TStringField

なし

TWideStringField

TIntegerField

なし

TSmallIntField

TWordField

TLargeintField

TFloatField

TCurrencyField

TBCDField

TFMTBCDField

TDateTimeField

TDateField

TTimeField

TSQLTimeStampField

TBooleanField

TBytesField

TVarBytesField

TBlobField

TMemoField

TGraphicField

TVariantField

なし

TAggregateField



表の一部の列は,複数の変換プロパティに関連しています(AsFloatAsCurrency,および AsBCD)。それは,これらのプロパティの 1 つをサポートしている項目データ型は,ほかのプロパティもサポートしているためです。

AsVariant プロパティは,全データ型を変換できます。上の表に一覧表示されていないデータ型の内,AsVariant も利用できます(これ以外にはなし)。不安があるときは AsVariant を使用するといいでしょう。

変換ができない場合もあります。たとえば AsDateTime を使って文字列を日付,時刻,日付/時刻形式に変換できるのは,文字列値が認識できる日付/時刻形式になっている場合だけです。変換が失敗すると,例外が生成されます。

また,常に希望する変換結果が得られるとは限りません。たとえば,Data.DB.TDateTimeField の値を AsFloat で浮動小数点形式に変換する場合は,AsFloat は,項目の日付の部分を 1899 年 12 月 31 日から数えた日数に,また時刻の部分を 24 時間を単位とする小数に変換します。次の表は,特殊な結果を生じる許容変換を示します。

特殊な変換結果 :



変換 結果

文字列から論理値

「true」,「false」,「Yes」,「No」を論理値に変換する。それ以外の値では,例外が生成される

浮動小数点形式から整数

浮動小数点値を最も近い整数値に丸める

日付/時刻または SQLTimeStamp から浮動小数点値

日付を 1899 年 12 月 31 日から数えた日数に変換し,時間を 24 時間を単位とする分数に変換する

論理値から文字列

論理値を「true」または「false」に変換する



これら以外の変換はまったくできません。そのような変換を試みると,やはり例外が生成されます。

変換が行われるのは,常に代入が実行される前です。たとえば次の文は,CustomersCustNo 項目の値を文字列に変換し,その文字列を編集コントロールのテキストに代入します。



 Edit1.Text := CustomersCustNo.AsString;



 Edit1->Text = CustomersCustNo->AsString;



逆に次の文は,編集コントロールのテキストを整数として CustomersCustNo 項目に代入します。



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



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



関連項目