2

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

“32,7893256547”是列值之一。

这只发生在某些计算机上。在这些计算机上,当我在区域设置中将 Windows 设置“小数点后的位数”更改为 9 时,一切正常。

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

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

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

4

2 回答 2

1

我尝试使用时遇到了同样的问题

ADOQuery1.FieldByName('YourField').AsString;

解决了这个问题:

BCDToStrf(ADOQuery1.FieldByName('YourField').AsBCD,ffFixed,11,3) ;
于 2012-08-27T18:12:54.110 回答
1

Me 帮助将 Windows 7 小数点从逗号更改为点并返回开始 > 控制面板 > 时钟、语言和区域 > 更改日期、时间和数字格式以及将数字和货币的小数点从逗号更改为点或其他方式前后左右。

抱歉,我在捷克语中使用 Windows,并且我们使用逗号分隔符作为默认小数点。有些标题是我翻译成英文的,所以它们不需要准确。

于 2013-08-19T07:42:43.890 回答