0

我正在将我的应用程序版本从 Delphi 2007 迁移到 Delphi XE4,我在使用 TClientDataSet 中的 TSingleField 时遇到了问题。

我的应用程序使用 SQL 将数据加载到 TClientDataSet,如果我使用

CAST(TABLE.FIELD AS FLOAT) AS FIELD

该字段作为 TSingleField 进入 ClientDataSet。

当字段像 TFloatField 一样出现在 delphi 2007 中时,有没有办法改变这种情况?

我正在使用 Delphi XE4 驱动程序来连接火鸟。

谢谢!

- - 编辑 - -

如果无法更改,是否有人知道如何为 clientDataSet 创建聚合字段以计算 TSingleFields?问题是我无法做到这一点,如果我手动将字段类型从 TSingleField 更改为 TFloatField,则 Aggregate 可以完美运行。

4

1 回答 1

0

我自己在将 Delphi 7 应用程序更新到 Delphi 10.1 时遇到了这个问题。一种解决方案是将 FLOAT 字段转换为 DOUBLE PRECISION。这样,ClientDataSet 的 xml 中的字段类型最终为“r8”(TFloatField)而不是“r4”(TSingleField)。

另一种解决方案是在应用程序中重新创建 TFields(和/或 TFieldsDefs),以便预期的字段类型是 TSingleField 而不是像以前那样的 TFloatField。

于 2016-10-19T18:45:20.963 回答