DELPHI 数据集在内存中快速查询方法

1、Bookmark
var p:pointer;
procedure TForm1.Button1Click(Sender: TObject);//加个标签
begin
  p:=cxGrid1DBTableView1.DataController.DataSet.GetBookmark;
end  
procedure TForm1.Button2Click(Sender: TObject);//行焦点定位到标签
begin
  cxGrid1DBTableView1.DataController.DataSet.GotoBookmark(p);
end;
2、recNo 
    var i:integer;
       i:=adodataset1.recno;
       adodataset1.recno:=i;
3、locate
    单个字段
      Locate('ID', 'A001', []);

    多个字段
      Locate('ID;Name', VarArrayOf(['A001', '小三']), []);

 

var fname,fv:string;
begin
  fname:=ADOQuery.Fields.Fields[0].Name;
  fv:=ADOQuery.Fields.Fields[0].AsString;
  ADOQuery.Close;
  ADOQuery.Open;
  if ADOQuery.Locate(fname,fv, []) then
    showmessage('定位记录完成')
  else
    showmessage('定位失败。');
  //......
end;


 




   结果返回True/False; 即表示找到此记录/找不到,具体用法请按F1看帮助
4、CXGRID 
          i :=  View1.Controller.FocusedRowIndex;
          ds.Close;
          Ds.Open;
          View1.Controller.FocusedRowIndex := i;