delphi adoquery的field事件
数据库有有一个表表:商品编码数量我用adoquery连接,并且在数量field的onchange事件中写代码vars:string;sum:integer;begins:...
数据库有有一个表
表:商品编码 数量
我用adoquery连接,并且在数量field的onchange事件中写代码
var
s:string;
sum:integer;
begin
s:=trim(adoquery1.Fieldbyname('商品编码').Value);
sum:=0;
adoquery1.First;
while not adoquery1.Eof do
begin
sum:=sum+strtoint(trim(adoquery1.Fieldbyname('数量').Value));
adoquery1.Next;
end;
adoquery1.Locate('商品编码',s,[]);
edit1.Text:=inttostr(sum);
但运行时,我改变某一行的数量列的值时,出现这样的错误
为什么会出现这样的错误?又应该怎么解决呢? 展开
表:商品编码 数量
我用adoquery连接,并且在数量field的onchange事件中写代码
var
s:string;
sum:integer;
begin
s:=trim(adoquery1.Fieldbyname('商品编码').Value);
sum:=0;
adoquery1.First;
while not adoquery1.Eof do
begin
sum:=sum+strtoint(trim(adoquery1.Fieldbyname('数量').Value));
adoquery1.Next;
end;
adoquery1.Locate('商品编码',s,[]);
edit1.Text:=inttostr(sum);
但运行时,我改变某一行的数量列的值时,出现这样的错误
为什么会出现这样的错误?又应该怎么解决呢? 展开
2个回答
2013-05-09
展开全部
你的编码有点问题。。。主要的问题是 adoquery1.Locate('商品编码',s,[]);
adoquery.locate() 他是一个布尔函数。。你这么写着是啥意思?他是做判断的吧还有这句sum:=sum+strtoint(trim(adoquery1.Fieldbyname('数量').Value));
想不通。。。为什么不直接sum:=sum+adoquery1.FIeldByName('数量').value; ?你的图片太小了。。我看不到是什么错误 还有就是field的onchange事件我好像没用过。。你想运行什么样的效果。或许我可以给你想个
adoquery.locate() 他是一个布尔函数。。你这么写着是啥意思?他是做判断的吧还有这句sum:=sum+strtoint(trim(adoquery1.Fieldbyname('数量').Value));
想不通。。。为什么不直接sum:=sum+adoquery1.FIeldByName('数量').value; ?你的图片太小了。。我看不到是什么错误 还有就是field的onchange事件我好像没用过。。你想运行什么样的效果。或许我可以给你想个
2013-05-09
展开全部
双击DBGrid的关联数据集控件比如ADOQuery ,然后右击点来增加新的计算字段。记得把FieldType 设置为Calculated 。然后在ADOQuery的OnCalcFields事件里写代码:ADOQuery.FieldByName('HJ').AsFloat:= ADOQuery.FieldByName('dj').AsFloat * ADOQuery.FieldByName('sj').AsInteger 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询