循环问题,大哥们帮忙看看 急

huangji183 2009-11-04 09:53:30
var
a,b:double;
i:integer;
begin
adoquery6.SQL.Clear;
adoquery6.SQL.Text:=' SELECT * FROM (SELECT 仪表档案编号 AS 仪表档案编号1, MAX(抄表时间) AS 抄表时间1 FROM roompower GROUP BY 仪表档案编号) t1 LEFT OUTER JOIN roompower ON t1.仪表档案编号1 = roompower.仪表档案编号 AND t1.抄表时间1= roompower.抄表时间 ' ;
adoquery6.Open;
adoquery6.First;
while not adoquery6.Eof do
begin
for i:=1 to adoquery6.RecordCount do
begin
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from power where 抄表时间 >=#'+formatdateTime('yyyy-mm-dd',now-2)+'# and 抄表时间<#'+formatdateTime('yyyy-mm-dd',now)+'# and 仪表档案编号=i');
adoquery2.Open;
edit6.Text:=adoquery2.fieldbyname('抄表数据').AsString ;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from power where 抄表时间 >=#'+formatdateTime('yyyy-mm-dd',now-12)+'# and 抄表时间<#'+formatdateTime('yyyy-mm-dd',now)+'# and 仪表档案编号=i ');
adoquery2.Open;
edit7.Text:=adoquery2.fieldbyname('抄表数据').AsString ;

a:=strtofloat(edit6.Text);
b:=strtofloat(edit7.Text);
edit5.Text:=floattostr(abs(a-b)/10);

adoquery10.Close;
adoquery10.SQL.Clear;
adoquery10.SQL.Add('update 用户信息 set 平均电量=abs(a-b)/10 where 住房编号=i');
adoquery10.ExecSQL;
adoquery6.Next
end;
end;
end;
...全文
62 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangji183 2009-11-04
  • 打赏
  • 举报
回复
循环出问题了
huangji183 2009-11-04
  • 打赏
  • 举报
回复
弄好了 谢谢大家
纯冰糖 2009-11-04
  • 打赏
  • 举报
回复
循环里加这个代码,界面够闪的了。

a:=strtofloat(edit6.Text);
b:=strtofloat(edit7.Text);
edit5.Text:=floattostr(abs(a-b)/10);
风之谷 2009-11-04
  • 打赏
  • 举报
回复
你的循环出什么问题了?
lybingyu 2009-11-04
  • 打赏
  • 举报
回复
没看明白楼主问题的意思呀
huangji183 2009-11-04
  • 打赏
  • 举报
回复
我用的access数据库,里面数据是借用别人数据库,他们都是每天更新的,
gwhdaxia 2009-11-04
  • 打赏
  • 举报
回复
while not adoquery6.Eof do 这个已经循环了
for i:=1 to adoquery6.RecordCount do 又在做什么
gwhdaxia 2009-11-04
  • 打赏
  • 举报
回复
为什么不写个存储过程来干这个事情

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧