query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('delete from dwdzd');
    query1.ExecSQL;
    query1.SQL.Clear;
    query1.SQL.Add('select a.sbh,a.dwdm,a.xm,b.dwmc');
    query1.SQL.Add(' from grjbxx a,dwjbxx b where a.dwdm=b.dwdm and a.dwdm=:dwdm1');
    query1.Params[0].AsString:=dwdm.Text;
    query1.Open;
    query1.Last;
    query1.First;
while not query1.Eof do
begin 
        query.Close;
        query.SQL.Clear;
        query.SQL.Add('insert into dwdzd (sbh,dwdm,dwmc,xm,zzgz,txgz,zhsr1,bnlx,cszh,ljsr,ljlx,qtsr,ickf,mzzc,qtzc,zhye) values');
        query.SQL.Add(' (:sbh,:dwdm,:dwmc,:xm,:zzgz,:txgz,:zhsr1,:bnlx,:cszh,:ljsr,:ljlx,:qtsr,:ickf,:mzzc,:qtzc,:zhye)');
        query.Params[0].AsString:=lwsbh;
        query.Params[1].AsString:=lwdwdm;
        query.Params[2].AsString:=lwdwmc;
         。。
        query.ExecSQL;
        query1.Next;
end
怎么表里只有一条数据呢???

解决方案 »

  1.   

    query 和query1不会写错吧?不要同一个对象啊。就是说query不要就是query1 哦
      

  2.   

    query和query1不一样,如果query变成query1会报错“cannot perform this operation on a closed dataset”
      

  3.   

    你query1查出来的应该就只有一条记录
    如果不确定,可以把代码放到查询分析器里执行一下,看看有多少记录。---------
    你结帐率好低。
      

  4.   

    query1只做了一次循环啊,你可以调试下,现在写代码怎么都不调试了啊,郁闷
      

  5.   

    每次循环都query.close
    那样岂不是每次都做第一条记录?
    所以插入一条咯,把query.close去掉试试