用循环向数据表中插入数据,为什么循环一次会插入两条相同的数据,最后一次循环插入一条数据???
begin
booklist:=Form5.dbgrid1.SelectedRows;
for i:=0 to booklist.Count-1 do
begin
Form5.adoquery1.Book:=booklist[i];
FAuxQty:=Form5.DBGrid1.DataSource.DataSet.fieldbyname('订购数量').AsInteger;
FBillNO:=Form5.DBGrid1.DataSource.DataSet.Fieldbyname('单据编号').AsString;
adoquery1.Close; adoquery1.SQL.Text:='insert into table1 (FAuxQty,FBillNo)'+
'values('''+inttostr(FAuxQty)+''','''+FBillNo+''')';
adoquery1.ExecSQL;
end;
end.
begin
booklist:=Form5.dbgrid1.SelectedRows;
for i:=0 to booklist.Count-1 do
begin
Form5.adoquery1.Book:=booklist[i];
FAuxQty:=Form5.DBGrid1.DataSource.DataSet.fieldbyname('订购数量').AsInteger;
FBillNO:=Form5.DBGrid1.DataSource.DataSet.Fieldbyname('单据编号').AsString;
adoquery1.Close; adoquery1.SQL.Text:='insert into table1 (FAuxQty,FBillNo)'+
'values('''+inttostr(FAuxQty)+''','''+FBillNo+''')';
adoquery1.ExecSQL;
end;
end.
booklist:=Form5.dbgrid1.SelectedRows;
for i:=0 to booklist.Count-1 do
begin
Form5.adoquery1.Book:=booklist[i];
FAuxQty:=Form5.DBGrid1.DataSource.DataSet.fieldbyname('订购数量').AsInteger;
FBillNO:=Form5.DBGrid1.DataSource.DataSet.Fieldbyname('单据编号').AsString;
adoquery1.Close; adoquery1.SQL.Text:='insert into table1 (FAuxQty,FBillNo)'+
'values('''+inttostr(FAuxQty)+''','''+FBillNo+''')';
adoquery1.ExecSQL; adoquery1.Open;
adoquery1.Next; //指向下一条记录
end;
end.
count,i:integer;
begin
bm:=getbook;
count:=Form5.dbgrid1.SelectedRows.Count;
if count >0 then
for i:=0 to count - 1 do
begin
bm:=pointer(Form5.dbgrid1.SelectedRows.items[i]);
gotobook(bm);
//或者 gotobook( pointer(Form5.dbgrid1.SelectedRows.items[i])
FAuxQty:=Form5.DBGrid1.DataSource.DataSet.fieldbyname('订购数量').AsInteger;
FBillNO:=Form5.DBGrid1.DataSource.DataSet.Fieldbyname('单据编号').AsString;
adoquery1.Close; adoquery1.SQL.Text:='insert into table1 (FAuxQty,FBillNo)'+
'values('''+inttostr(FAuxQty)+''','''+FBillNo+''')';
adoquery1.ExecSQL;
end;
end.