实现功能:将用adoquery查询出来的数据,五个一组添加到另外一个表中??
adoquery2.First;
i := 0; while not adoquery2.Eof do
begin
while not i=5 do
begin
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.Add('insert into printtable(名称,型号,数量,单位,单价,金额)'+
'values(:a1,:a2,:a3,:a4,:a5,:a6)');
adoquery3.Parameters.ParamByName('a1').Value:=adoquery2.FieldByName('mc').Value;
adoquery3.Parameters.ParamByName('a2').Value:=adoquery2.FieldByName('xh').Value;
adoquery3.Parameters.ParamByName('a3').Value:=adoquery2.FieldByName('rksl').Value;
adoquery3.Parameters.ParamByName('a4').Value:=adoquery2.FieldByName('dw').Value;
adoquery3.Parameters.ParamByName('a5').Value:=adoquery2.FieldByName('dj').Value;
adoquery3.Parameters.ParamByName('a6').Value:=adoquery2.FieldByName('je').Value;
adoquery3.ExecSQL;
adoquery2.Next;
Inc(i);
end;这样写不对 我应该如何写呢??
adoquery2.First;
i := 0; while not adoquery2.Eof do
begin
while not i=5 do
begin
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.Add('insert into printtable(名称,型号,数量,单位,单价,金额)'+
'values(:a1,:a2,:a3,:a4,:a5,:a6)');
adoquery3.Parameters.ParamByName('a1').Value:=adoquery2.FieldByName('mc').Value;
adoquery3.Parameters.ParamByName('a2').Value:=adoquery2.FieldByName('xh').Value;
adoquery3.Parameters.ParamByName('a3').Value:=adoquery2.FieldByName('rksl').Value;
adoquery3.Parameters.ParamByName('a4').Value:=adoquery2.FieldByName('dw').Value;
adoquery3.Parameters.ParamByName('a5').Value:=adoquery2.FieldByName('dj').Value;
adoquery3.Parameters.ParamByName('a6').Value:=adoquery2.FieldByName('je').Value;
adoquery3.ExecSQL;
adoquery2.Next;
Inc(i);
end;这样写不对 我应该如何写呢??
总表----取五个数据插入到printtable表中-----fastreport从printtable中取出-----清空printtable表------再从总表中取出-----循环
adoquery2.Next;
Inc(i);
这3句,好像有些问题。
adoquery3.SQL.Clear;
adoquery3.SQL.Add('insert into printtable(名称,型号,数量,单位,单价,金额)'+
'values(:a1,:a2,:a3,:a4,:a5,:a6)');
if not adoquery2.Eof then //否则就是直接循环到底了,与所有记录一次性插入没啥区别
begin
while (i<5) and (not adoQuery2.eof) do
begin
adoquery3.Close;
adoquery3.Parameters.ParamByName('a1').Value:=adoquery2.FieldByName('mc').Value;
adoquery3.Parameters.ParamByName('a2').Value:=adoquery2.FieldByName('xh').Value;
adoquery3.Parameters.ParamByName('a3').Value:=adoquery2.FieldByName('rksl').Value;
adoquery3.Parameters.ParamByName('a4').Value:=adoquery2.FieldByName('dw').Value;
adoquery3.Parameters.ParamByName('a5').Value:=adoquery2.FieldByName('dj').Value;
adoquery3.Parameters.ParamByName('a6').Value:=adoquery2.FieldByName('je').Value;
adoquery3.ExecSQL;
adoquery2.Next;
inc(i);
end;
end; //记录adoQuery2的指针,下一组5条记录循环从 if 前开始重复