32,7893256547不是有效的BCD值

时间:2012-07-06 08:37:54

标签: delphi delphi-2009

我在SQL Server 2008中有一个数字(26,10)列“x”。当我尝试使用TADOQuery的FieldByName('x')读取列值时.AsExtended,我收到错误“32,7893256547不是有效的BCD值“。

“32,7893256547”是列值之一。

仅在某些计算机上发生这种情况。在这些计算机上,当我在区域设置中将窗口设置“十进制后的位数”更改为9时,一切正常。

我看到该列在ADOQuery中映射到TFMTBCDField。

BCD转换/格式化是否有问题?我该如何解决这个问题?

平台: Windows 7,Delphi 2009,SQL Server 2008。

2 个答案:

答案 0 :(得分:1)

我尝试使用

时遇到了同样的问题
ADOQuery1.FieldByName('YourField').AsString;

解决了这个问题:

BCDToStrf(ADOQuery1.FieldByName('YourField').AsBCD,ffFixed,11,3) ;

答案 1 :(得分:1)

我帮助将Windows 7小数点从逗号更改为指向并返回开始&gt; <控制面板>时钟,语言和地区&gt;更改日期,时间和数字格式,并将数字和货币的小数点从逗号更改为指向或反向转换。

抱歉,我在捷克语中使用Windows,并且我们使用逗号分隔符作为默认小数点。有些标题由我翻译成英文,因此无需准确。