0

アプリケーションのバージョンを Delphi 2007 から Delphi XE4 に移行していますが、TClientDataSet の TSingleField に問題があります。

私のアプリケーションは SQL を使用してデータを TClientDataSet にロードします。

CAST(TABLE.FIELD AS FLOAT) AS FIELD

フィールドは TSingleField として ClientDataSet に渡されます。

Delphi 2007 にあるように、フィールドが TFloatField として ClientDataSet に来るので、これを変更する方法はありますか?

私はDelphi XE4ドライバーを使用してfirebirdに接続しています。

ありがとう!

- - 編集 - -

変更する方法がない場合、clientDataSet の集計フィールドを作成して TSingleFields を計算する方法を知っている人はいますか? 問題は、私がそれを行うことができないことです.フィールドタイプを TSingleField から TFloatField に手動で変更すると、Aggregate は完全に機能します。

4

1 に答える 1

0

Delphi 7 アプリを Delphi 10.1 に更新しているときに、この問題に遭遇しました。1 つの解決策は、FLOAT フィールドを DOUBLE PRECISION としてキャストすることです。そのようにして、ClientDataSet の xml のフィールド タイプは、「r4」(TSingleField) ではなく「r8」(TFloatField) になります。

もう 1 つの解決策は、アプリケーションで TFields (および/または TFieldsDefs) を再作成して、予想されるフィールド タイプが以前のように TFloatField ではなく TSingleField になるようにすることです。

于 2016-10-19T18:45:20.963 に答える