读书人

表格上多行数据转移有异常请高手帮忙

发布时间: 2012-03-06 20:47:55 作者: rapoo

表格上多行数据转移有错误,请高手帮忙!急啊!
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).
请各位高手帮忙解决。谢谢!


[解决办法]
for i := 0 to xjDBGrid1.SelectedCount - 1 do
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;

读书人网 >.NET

热点推荐