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;

相关文章