求助:有关用append向数据库的表中追加记录的问题?(50分)

  • 主题发起人 主题发起人 kristy811203
  • 开始时间 开始时间
K

kristy811203

Unregistered / Unconfirmed
GUEST, unregistred user!
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;

这段代码只能将第一条记录加入到数据库的表中,而不能将所有的记录全部加入到表中,请问循环应该怎么写?

谢谢,我是个新手,不怎么会,请大家帮个忙!!!
 
query5.sql.clear;
query5.sql.text:='insert into lhfsdzhtb(LH,FW...) values(...)';
query5.sql.execute
对数据库来说,追加=insert.,基本语句就是上面了,如果要循环可以在外面套 while 条件 或 for ... 就行了。你的记录来源如果是另一个查询结果集,可以如下:
for i:=1 to query.recordcount do
begin
query5.sql.clear;
query5.sql.text:='insert into lhfsdzhtb(LH,FW...) values(...)';
query5.sql.execute;
end;
中间的数据你自已加工,放到 query5.sql.text中就行了。
 
query5.Open;
lhfsdzhtb.Open;
query5.first;
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.Value;
lhfsdzhtb.FieldByName('HJ').Value:=query5.Fields[9].Value;
lhfsdzhtb.FieldByName('JS').AsString:=query5.Fields[10].Value;
lhfsdzhtb.Post;
query5.next;
end;
lhfsdzhtb.Close;
 
接受答案了.
 
后退
顶部