procedure TFrRowsSelect.BitBtn2Click(Sender: TObject);
var
i: Integer;
begin
ADOQuery2.Active := True;
for i := 0 to xjDBGrid1.SelectedCount - 1 do
begin
ADOQuery1.GotoBookMark(Pointer(xjDBGrid1.SelectedRows[i]));
TranData(ADOQuery2, ADOQuery1, '1');
end;
end;上段代码意思是从ADOQuery1中选择的多行数据转移到ADOQuery2,第一条能转成功,第二条便出错,信息为:list index out of bounds(3).
请各位高手帮忙解决。谢谢!
var
i: Integer;
begin
ADOQuery2.Active := True;
for i := 0 to xjDBGrid1.SelectedCount - 1 do
begin
ADOQuery1.GotoBookMark(Pointer(xjDBGrid1.SelectedRows[i]));
TranData(ADOQuery2, ADOQuery1, '1');
end;
end;上段代码意思是从ADOQuery1中选择的多行数据转移到ADOQuery2,第一条能转成功,第二条便出错,信息为:list index out of bounds(3).
请各位高手帮忙解决。谢谢!
begin
ADOQuery1.GotoBookMark(Pointer(xjDBGrid1.SelectedRows[i]));
TranData(ADOQuery2, ADOQuery1, '1');
end;估计你转过去第一条的之后,SelectedRows已经是只有一条数据了,所以越届了,试试:
while xjDBGrid1.SelectedCount > 0 do
begin
ADOQuery1.GotoBookMark(Pointer(xjDBGrid1.SelectedRows[0]));
TranData(ADOQuery2, ADOQuery1, '1');
end;