sql 中为何数字自动进位(100分)

  • 主题发起人 主题发起人 liqingsong
  • 开始时间 开始时间
L

liqingsong

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一次编程中,遇到过这样一怪事,
我用的是delphi5 和 sql server
sql server 中有一个表 lqs2000,lqs2000 中有一个字段num是numeric(12,2)

当我在delphi中的query.sql.text:="insert lqs2000(num) values(:num)";
query.parambyname("num").asstring:=edit1.text;
其中edit.text="89.89";
但是当我提交后,数据竟然变成了 89。90
不知是何原因,请各位高手指点。
 
你将参数num的DataType改成ftFloat。程序写成
Query.ParamByName('num').asFloat:=StrToFloat(edit1.Text);
试试吧!
 
是啊,你定义的是numeric,负值却用string,当然会出错误。
 
try
numeric(12,2)--> numeric(12,3)

ok?
 
SQL Explore中的ENABLE BCD设置成TRUE.
 
把edit1.text的内容先转为numeric型,再调用SQL
 
不要用asstring,用asfloat就可以了。
Query.ParamByName('num').asFloat:=StrToFloat(edit1.Text);
 
多人接受答案了。
 
后退
顶部