Delphi 327893256547不是有效的BCD值
我在SQLServer2008中有一个数字(26,10)列“x”。当我尝试使用TADOQuery的FieldByName('x')读取列值时,我得到一个错误“327893256547不是有效的BCD值” “327893256547”是列值之一 这种情况只在某些计算机上发生。在这些计算机上,当我在区域设置中将windows设置“小数点后的位数”更改为9时,一切正常 我看到该列映射到ADOQuery中的TFMTBCDField BCD转换/格式是否有问题?我怎样才能解决这个问题呢 站台:Delphi 327893256547不是有效的BCD值,delphi,delphi-2009,Delphi,Delphi 2009,我在SQLServer2008中有一个数字(26,10)列“x”。当我尝试使用TADOQuery的FieldByName('x')读取列值时,我得到一个错误“327893256547不是有效的BCD值” “327893256547”是列值之一 这种情况只在某些计算机上发生。在这些计算机上,当我在区域设置中将windows设置“小数点后的位数”更改为9时,一切正常 我看到该列映射到ADOQuery中的TFMTBCDField BCD转换/格式是否有问题?我怎样才能解决这个问题呢 站台: Windo
Windows 7、Delphi 2009、SQL Server 2008。当我尝试使用
ADOQuery1.FieldByName('YourField').AsString;
解决方法如下:
BCDToStrf(ADOQuery1.FieldByName('YourField').AsBCD,ffFixed,11,3) ;
Me帮助在Windows 7中,在“开始”>“控制面板”>“时钟、语言和区域”>“更改日期、时间和数字格式”中将小数点从逗号更改为点,或在逗号之间更改为点,或以其他方式来回更改数字和货币的小数点
很抱歉,我使用的是捷克语的Windows,默认小数点为逗号分隔符。有些标题是我翻译成英文的,所以不必精确。听起来你的问题是小数分隔符-
,
vs
。另外,试试这个-@Eric:No.“,“小数分隔符不是问题。”。我查过了。它与小数点后的位数有关。为什么不直接使用FieldByName('x')。AsString然后在您这边处理转换?