注册 登录
编程论坛 Delphi论坛

麻烦大家~先谢了~

deandean 发布于 2005-06-15 20:09, 762 次点击

我想计算数据表中某个字段值,试着写了下面的东西~ 编译的时候没问题,但在运行计算的时候出错~ 下面出现的字段全用的数字类型~ 我觉得是引用数据元素出的问题~ 哪位高人给指点下~谢了~ begin adoquery1.first; while not adoquery1.EOF do begin

adoquery1.Edit; adoquery1.Append; adoquery1.FieldByName('照明度数').AsString:=strtoint(adoquery1.FieldByName('本月照明 数').AsString) - strtoint(adoquery1.FieldByName('上月照明数').AsString); adoquery1.FieldByName('电炊度数').AsString:=inttostr(strtoint(adoquery1.FieldByName('本月电炊数').AsString) - strtoint(adoquery1.FieldByName('上月电炊数').AsString)); adoquery1.FieldByName('用电总度数').AsString:=inttostr(strtoint(adoquery1.FieldByName('照明度数').AsString) + strtoint(adoquery1.FieldByName('电炊度数').AsString)); adoquery1.FieldByName('用电金额').AsString:=inttostr(strtoint(adoquery1.FieldByName('用电总度数').AsString) * strtoint(edit2.text));

adoquery1.post; adoquery1.Append; adoquery1.Next; end;

2 回复
#2
wolf2005-06-19 11:28
adoquery1.Edit;
  adoquery1.FieldByName('照明度数').AsString:=strtoint(adoquery1.FieldByName('本月照明         数').AsString) - strtoint(adoquery1.FieldByName('上月照明数').AsString);
  adoquery1.FieldByName('电炊度数').AsString:=inttostr(strtoint(adoquery1.FieldByName('本月电炊数').AsString) - strtoint(adoquery1.FieldByName('上月电炊数').AsString));
  adoquery1.FieldByName('用电总度数').AsString:=inttostr(strtoint(adoquery1.FieldByName('照明度数').AsString) + strtoint(adoquery1.FieldByName('电炊度数').AsString));
  adoquery1.FieldByName('用电金额').AsString:=inttostr(strtoint(adoquery1.FieldByName('用电总度数').AsString) * strtoint(edit2.text));  adoquery1.post;
adoquery1.open;
  adoquery1.Next;


这下应该可以了
#3
68224212005-06-21 14:15
同2楼的,1楼程序中循环出错了,逻辑错误,注意到没?
APPEND是插入数据,数据没处于编辑状态怎么进行计算,其实我建议在这种情况下,edit用一个adoquery,append用一个adoquery,这样不会引起混淆
1