在一按钮中有如下代码,为什么要按两次按钮才能得出正确的结果呀?第一次执行sum_a的值为Null,第二次就是正确的值了,如果用单步调试,则第一次就可以成功,为什么呢?是不是mydatas.tjb_query还没查询出来就执行下面的代码了啊?
sqltemp:='select sum(a.金额) as sum_a from xedk a,spxx b,qhdm c where year(a.时间)="'+ndtemp+'" and a.编号=b.编号 and b.街道=c.qhdm and mid(c.qhdm,1,6)="'+dmtemp+'" group by c.qhdm';
mydatas.tjb_Query.Close;
mydatas.tjb_Query.SQL.Clear;
mydatas.tjb_Query.SQL.Add(sqltemp);
mydatas.tjb_Query.Open;for i:=1 to mydatas.qhjzQuery.RecordCount do
begin
mydatas.temp_Query.Append;
mydatas.temp_Query.FieldByName('序号').AsInteger:=i;
ndtemp:=trim(flatcombobox1.Items.Strings[flatcombobox1.itemindex]);
mydatas.temp_Query.FieldByName('年度').AsString:=ndtemp;
mydatas.temp_Query.FieldByName('街道').AsString:=trim(mydatas.qhjzQuery.fieldbyname('qhmc').asstring);
mydatas.temp_Query.FieldByName('金额').AsVariant:=mydatas.tjb_Query.fieldbyname('sum_a').AsVariant;
mydatas.temp_Query.UpdateBatch(arall);
mydatas.qhjzquery.Next;
mydatas.tjb_Query.Next;
end;
sqltemp:='select sum(a.金额) as sum_a from xedk a,spxx b,qhdm c where year(a.时间)="'+ndtemp+'" and a.编号=b.编号 and b.街道=c.qhdm and mid(c.qhdm,1,6)="'+dmtemp+'" group by c.qhdm';
mydatas.tjb_Query.Close;
mydatas.tjb_Query.SQL.Clear;
mydatas.tjb_Query.SQL.Add(sqltemp);
mydatas.tjb_Query.Open;for i:=1 to mydatas.qhjzQuery.RecordCount do
begin
mydatas.temp_Query.Append;
mydatas.temp_Query.FieldByName('序号').AsInteger:=i;
ndtemp:=trim(flatcombobox1.Items.Strings[flatcombobox1.itemindex]);
mydatas.temp_Query.FieldByName('年度').AsString:=ndtemp;
mydatas.temp_Query.FieldByName('街道').AsString:=trim(mydatas.qhjzQuery.fieldbyname('qhmc').asstring);
mydatas.temp_Query.FieldByName('金额').AsVariant:=mydatas.tjb_Query.fieldbyname('sum_a').AsVariant;
mydatas.temp_Query.UpdateBatch(arall);
mydatas.qhjzquery.Next;
mydatas.tjb_Query.Next;
end;
解决方案 »
- 寻在最好的delphi教程,书籍……
- 已知句柄怎么获得对应的内存区域。
- PB转过来学DELPHI简单问1: integer()函数疑问?
- 快速分析html文件,并从中提取内容!请大家帮忙,好郁闷呀(急)!
- 函数返回参数可以是一个包含多个结果的集合吗(分不够再加)
- 急!!!当我追加一条记录的时候,怎样始数据库里的id字段加一?
- [讨论]使用ACTION比CLOSE安全?
- 怎样从一颗心变成两颗心,三颗心?
- 谁帮我看看这段代码
- 如何取得网卡的MAC地址?
- 请问这种编码在D2010中用哪个函数? %E4%BA%92%E8%81%94%E7%BD%91%E6%89%8D%E5%AD%90
- TIdURI::PathEncode编码的结果怎么样解码
mydatas.temp_Query.Close;
mydatas.temp_Query.SQL.Clear;
mydatas.temp_Query.SQL.Add('delete * from jljtable');
mydatas.temp_Query.ExecSQL;
mydatas.temp_Query.SQL.Clear;
mydatas.temp_Query.SQL.Add('select * from jljtable');
mydatas.temp_Query.Open;
如果mydatas.qhjzQuery这个记录集为NULL的话,你的循环是走不下去的
showmessage('显示信息');
看看执行SQL语句时有没有问题..........