delphi 中Adoquery ,在打开时能否让记录指针不移动? [问题点数:40分,结帖人microd]

delphi 中Adoquery ,在打开时能否让记录指针不移动?
由于数据集Adoquery 时,它的针指称动会废时,能否在打开完成之前不让记录指针不移动。打开完毕之后再回复移动?

这样用:
self.ADOQuery1.DisableControls;
.........
self.ADOQuery1.EnableControls;

procedure refreshDataSet(daSet: TadoQuery);
var
  tempBookmark: TBookmark;
begin
  IF DaSet.RecordCount<=1 Then
        Exit;
  daSet.DisableControls;
  tempBookmark := daSet.GetBookmark;              //保存书签

  daSet.Requery([]);                              //刷新数据,
  try
    daSet.GotoBookmark(tempBookmark);             //重新获取书签
  except
    daSet.Last;
  end;
  daSet.EnableControls;
end;
假设表名是adoquery1,
DisableControls是切断数据表adoquery1与感知组件如:dbgrid,dbedit等的联系。
如果你在代码中有移动和编辑、添加、删除记录的情况下,adoquery1的记录指针也会动的。
如果你关闭后又重新打开adoquery1,需要重新定位指针。
adoquery1.requery;//  可用楼上的方法。
如果是close后再open的情况下,bookmark也会失效的。重新定位,用locate,seek也可实现。
原文地址:https://www.cnblogs.com/jijm123/p/11301203.html