procedure Tlhfrm.SpeedButton1Click(Sender: TObject); 
begin 
dm1.Query5.Open; 
with dm1 do 
begin 
query5.Close; 
query5.SQL.Clear; 
query5.SQL.Add('delete from lhfsdzh'); 
query5.ExecSQL; 
query5.Close; 
query5.SQL.Clear; 
query5.SQL.Add('select LH,FW,sum(A3) as A3,sum(WXF) as WXF,sum(WSF) as WSF,sum(C3) as C3'); 
query5.SQL.Add(',sum(C4) as C4,sum(B3) as B3,sum(B4) as B4,sum(HJ) as HJ,JS'); 
query5.SQL.Add(' from fsdzh'); 
query5.SQL.Add(' where js>='+''''+edit1.Text+''''); 
query5.SQL.Add(' and js<='+''''+edit2.Text+''''); 
query5.SQL.Add(' group by LH,FW,JS'); query5.Open; lhfsdzhtb.Open; 
lhfsdzhtb.Append; lhfsdzhtb.FieldByName('LH').AsString:=query5.Fields[0].Value; 
lhfsdzhtb.FieldByName('FW').AsString:=query5.Fields[1].Value; 
lhfsdzhtb.FieldByName('A3').Value:=query5.Fields[2].Value; 
lhfsdzhtb.FieldByName('WXF').Value:=query5.Fields[3].Value; 
lhfsdzhtb.FieldByName('WSF').Value:=query5.Fields[4].Value; 
lhfsdzhtb.FieldByName('C3').Value:=query5.Fields[5].Value; 
lhfsdzhtb.FieldByName('C4').Value:=query5.Fields[6].Value; 
lhfsdzhtb.FieldByName('B3').Value:=query5.Fields[7].Value; 
lhfsdzhtb.FieldByName('B4').Value:=query5.Fields[8].Value; 
lhfsdzhtb.FieldByName('HJ').Value:=query5.Fields[9].Value; 
lhfsdzhtb.FieldByName('JS').AsString:=query5.Fields[10].Value; 
lhfsdzhtb.Post; 
lhfsdzhtb.Close; end; 
end;这段代码只能将第一条记录加入到数据库的表中,而不能将所有的记录全部加入到表中,请问循环应该怎么写?谢谢,我是个新手,不怎么会,请大家帮个忙!!!

解决方案 »

  1.   

    while not query5.Eof do
    begin
      lhfsdzhtb.Append;   lhfsdzhtb.FieldByName('LH').AsString:=query5.Fields[0].Value; 
      lhfsdzhtb.FieldByName('FW').AsString:=query5.Fields[1].Value; 
      lhfsdzhtb.FieldByName('A3').Value:=query5.Fields[2].Value; 
      lhfsdzhtb.FieldByName('WXF').Value:=query5.Fields[3].Value; 
      lhfsdzhtb.FieldByName('WSF').Value:=query5.Fields[4].Value; 
      lhfsdzhtb.FieldByName('C3').Value:=query5.Fields[5].Value; 
      lhfsdzhtb.FieldByName('C4').Value:=query5.Fields[6].Value; 
      lhfsdzhtb.FieldByName('B3').Value:=query5.Fields[7].Value; 
      lhfsdzhtb.FieldByName('B4').Value:=query5.Fields[8].Value; 
      lhfsdzhtb.FieldByName('HJ').Value:=query5.Fields[9].Value; 
      lhfsdzhtb.FieldByName('JS').AsString:=query5.Fields[10].Value; 
      lhfsdzhtb.Post; 
      query5.Next
    end;
      

  2.   

    最好在While循环前加上
    query5.First;
    将记录指针指向第一条记录。保险