0

我正在将一个应用程序从 Delphi 2010 迁移到 Delphi XE7,它使用一些带有 BDE 的旧 Paradox Table。我有一些字段形成 BCD (#) Size 4,在 Delphi 2010 中被管理为.asfloat

例子

TABELLA1.Fieldbyname('FIELDBCD').AsFloat: = TABELLA2.Fieldbyname('Number').AsFloat; 

没有任何问题。

在转换后的程序中,任何类型的赋值都会导致错误信号 EDBEngineError Number is out of range.... 即使我只是从 DBGrid 中对值进行数字化,这也是如此。

您知道 Delphi XE7 中 BCD 字段管理中的 BUG 还是它们必须以不同的方式进行管理?

谢谢米尔科

4

1 回答 1

0

这个问题很旧,但这些天我仍然面临这个问题。我建议确认三个属性。

精度 - (它需要是有意义的部分和小数部分)。例如,在数据库中字段是数字(8,4),所以这里正确的值是 12

大小 - (只是数字的 faccionary 部分)。在我们的示例中,正确的值为 4

DisplayWidth - 这里我们使用精度 + 1 的值作为逗号。

于 2018-08-14T13:33:39.143 回答