当 adoquery 刷新后,数据还在当前行
当 adoquery 刷新后,数据还在当前行
解决方法,还是用重新打开的方法,但是在这个操作之前先保存当前的位置,以便重新打开之后进行定位。用如下的方法之一:
//用书签
var
SavePlace: TBookmark;
begin
SavePlace := ADOQuery1.GetBookmark;
ADOQuery1.DisableControls;
ADOQuery1.Requery; //与先Close再Open等效
ADOQuery1.EnableControls;
ADOQuery1.GotoBookmark(SavePlace);
ADOQuery1.FreeBookmark(SavePlace);
end;
//如果数据集有可唯一定位的关键字,如id,这样做:
var
id: Integer;
begin
id := ADOQuery1.FieldByName( 'id ').AsInteger;
ADOQuery1.DisableControls;
ADOQuery1.Requery;
ADOQuery1.EnableControls;
ADOQuery1.Locate( 'id ', id, []);
end;