我在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。
答案 0 :(得分:1)
我尝试使用
时遇到了同样的问题ADOQuery1.FieldByName('YourField').AsString;
解决了这个问题:
BCDToStrf(ADOQuery1.FieldByName('YourField').AsBCD,ffFixed,11,3) ;
答案 1 :(得分:1)
我帮助将Windows 7小数点从逗号更改为指向并返回开始&gt; <控制面板>时钟,语言和地区&gt;更改日期,时间和数字格式,并将数字和货币的小数点从逗号更改为指向或反向转换。
抱歉,我在捷克语中使用Windows,并且我们使用逗号分隔符作为默认小数点。有些标题由我翻译成英文,因此无需准确。