access的数据字段的问题(100分)

  • 主题发起人 主题发起人 songyuanhai
  • 开始时间 开始时间
S

songyuanhai

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:我做了个软件,用access做了个数据库,其中几个字段是数字型中的整形和双精度型,当我在delphi中用一下语句时,出现“is not valid float value"的错误提示,请问是什么原因,我插入数据的语句为:
open;
insert;
fieldbyname('BH').AsString:=trim(edit1.Text);
fieldbyname('NAME').AsString:=trim(edit2.Text);
fieldbyname('PRICE1').AsFloat:=strtofloat(edit3.Text);
fieldbyname('PRICE2').asfloat:=strtofloat(edit4.Text);
fieldbyname('zt92').asinteger:=strtoint(trim(edit5.Text));
fieldbyname('zt97').asinteger:=strtoint(trim(edit6.Text));
fieldbyname('unit').AsString:=trim(edit7.Text);
fieldbyname('minnumber').Asinteger:=strtoint(trim(edit8.Text));
fieldbyname('bigclass').AsString:=trim(edit9.Text);
fieldbyname('type').AsString:=trim(edit10.Text);
fieldbyname('ZLDJ').asinteger:=strtoint(trim(edit11.Text));
fieldbyname('STAR').Asinteger:=strtoint(trim(edit12.text));
post;
close;
 
数据类型不匹配,一般为DELPHI所定义数据类型和后台表字段数据类型不一致
 
open;
insert;
fieldbyname('BH').AsString:=trim(edit1.Text);
fieldbyname('NAME').AsString:=trim(edit2.Text);
if edit3.Text <> '' then
fieldbyname('PRICE1').AsFloat:=strtofloat(edit3.Text);//注意这个
if edit4.Text <> '' then
fieldbyname('PRICE2').asfloat:=strtofloat(edit4.Text);//注意这个
fieldbyname('zt92').asinteger:=strtoint(trim(edit5.Text));
fieldbyname('zt97').asinteger:=strtoint(trim(edit6.Text));
fieldbyname('unit').AsString:=trim(edit7.Text);
if edit8.Text <> '' then
fieldbyname('minnumber').Asinteger:=strtoint(trim(edit8.Text));//注意这个
fieldbyname('bigclass').AsString:=trim(edit9.Text);
fieldbyname('type').AsString:=trim(edit10.Text);
if edit11.Text <> '' then
fieldbyname('ZLDJ').asinteger:=strtoint(trim(edit11.Text));//注意这个
fieldbyname('STAR').Asinteger:=strtoint(trim(edit12.text));
post;
close;
在数据库字段创建时设置默认值为 0
要不就要用
if edit3.Text <> '' then
fieldbyname('PRICE1').AsFloat:=strtofloat(edit3.Text) else
fieldbyname('PRICE1').AsFloat:=0;
 
问题出在float字段,看设计的精度是多少,传人的strtofloat(edit3.Text)是否溢出?
fieldbyname('PRICE1').AsFloat:=strtofloat(edit3.Text);
fieldbyname('PRICE2').asfloat:=strtofloat(edit4.Text);
 
谢谢nanshan!也谢谢luoyanqing119,问题已经解决了。
是我没有考虑到其他几个数字字段在没有输入数据是空,而不是0.看了nanshan的方法后,豁然开朗!问题解决!谢谢了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
503
import
I
后退
顶部