好奇怪的问题 查不出错误原因 请大虾帮帮忙!

Daybreakspider 2005-08-01 06:01:20
ADOQuery1存储数据库中的信息,为了打印,需要将ADOQuery1中dyxh字段值相同的记录合并,将结果存入ADOQuery2 ,以备建立报表时使用 ,其中ADOQuery通过connection与数据库相连


问题:如何能将ADOQuery2与数据库无关 我现在写打印时的程序 每运行一次打印 数据库里就要多出好多记录 这是为什么啊 该如何解决呢

程序如下: ADOQuery1.DisableControls;
adoquery1.First;
count:=0; //一组中第一个值count=0,判断是不是第一个值
front_dyxh:=ADOQuery1.fieldbyname('DYXH').Value;
while not adoquery1.Eof do
begin
behind_dyxh:=ADOQuery1.fieldbyname('DYXH').Value;
if(front_dyxh=behind_dyxh)then //如果两条记录打印序号相同
begin
if(count=0)then //如果是同组第一条记录
begin
count:=1;
RepADOQuery.Append;

for j:=0 to ADOQuery1.FieldCount-5 do
begin
if ADOQuery1.Fields[j].FieldName='WQID' then Continue;
RepADOQuery.Fields[j].Value:=ADOQuery1.Fields[j].Value;
end;

RepAdoQuery.FieldByName('DATE').Value:= ADOQuery1.Fieldbyname('KSR').Value ;
RepAdoQuery.FieldByName('TIME').Value:= ADOQuery1.fieldbyname('JSR').Value ;
RepAdoQuery.FieldByName('KSSJ').Value:=ADOQuery1.fieldbyname('kssj1').Value;
RepAdoQuery.FieldByName('JSSJ').Value:=ADOQuery1.fieldbyname('jssj1').Value;

adoquery1.Next;
end
else //如果不是同组第一条
begin
RepADOQuery.FieldByName('DWXM').Value:= RepADOQuery.FieldByName('DWXM').Value+','+ADOQuery1.fieldbyname('DWXM').Value;
adoquery1.Next;
end;
end
else //如果两条记录打印序号不同
begin
RepADOQuery.Post;
count:=0;
front_dyxh:=ADOQuery1.fieldbyname('DYXH').Value;
end;
end;
RepADOQuery.Post;
...全文
55 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Daybreakspider 2005-08-01
  • 打赏
  • 举报
回复
而且在这个函数后面还执行了RepAdoQuery.CancelBatch(arall);

希望大家帮帮忙啊!
Daybreakspider 2005-08-01
  • 打赏
  • 举报
回复
唉 前辈 俺总共10分 信不信由你

可还是要学习的呀
ztenv 2005-08-01
  • 打赏
  • 举报
回复
分太少了呀,登录一次,就十分呀,唉!!!

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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