BDE的Bug?请高手指教!(200分)

  • 主题发起人 主题发起人 赖凤松
  • 开始时间 开始时间

赖凤松

Unregistered / Unconfirmed
GUEST, unregistred user!
环境:Windows98,Delphi4.0,SQL Server6.5,数据库连接方式是用BDE

我在SQL Server中定义了这样一个表:
Create table demo(
a numeric(10,2) NOT NULL,
b decimal(10,2) NOT NULL,
c float NOT NULL,
d real NOT NULL)

我用Delphi的DBGrid1控件进行Append数据时,发现:

a,b两个字段都不能输入数值3658.12,一输入3658.12,
当该字段对应的Cell失去Focus时,数值总是变成3658.11,
换成用DBEdit输入也不行,这是为什么???

如果将数据库连接方式改为ODBC,一切又恢复正常。

我想就此改为ODBC连接算了,但据说ODBC速度很慢,所以我不知该怎么办!
 
ODBC连接SQL Server
不比BDE慢
可能快些
 
不是有什么输入的Mask 吧?
 
Try TDabaBase 的参数或Alias中设定
Enabled BCD=True
 
BCD是什么?
 
BCD是浮点数的一种存储格式,精确存储!
如果Enabled=True BDE转换就会精确进行,但耗时间。以前讨论过这问题。请
查找一下
 
在BDE ADMINISTRATOR中对你的ALIAS参数进行编辑,
其中有一项ENABLE BCD,设置为TRUE.
删除你的FORM里面的TFLOATFIELD,再次加入FIELD时
生成的就是TBCDFIELD了。
可以解决问题。
 
BDE确实有这样的问题。主要是由于浮点数的存储方式引起的。
例如数字0.1,在字段里面有可能保存为0.0999,有的情况显示出来对,
有时候不对。设置BCD可以解决这个问题。
 
>BDE确实有这样的问题。主要是由于浮点数的存储方式引起的
这不是BDE的问题。既然提供了BCD设置,说明不是BDE忽略了,而是有其他原因不缺省的设为True.
 
接受答案了.
 
后退
顶部