我看书上介绍用Table的Locate方法查询,很方便,但有一个地方不明白,在第二个参数上有时候会加上vararrayof,有时候又不加,加上这一句有什么区别吗,有什么功能呢
  另外,Locate方法查询找到相应的记录后指针会针到那条记录,那我有什么办法通过Table的方法让DBGrid中只显示查询到的记录呢,如果查询到的记录有多条,又应该怎么通过Table将那些记录显示在DBGrid中呢,谢谢

解决方案 »

  1.   

    vararrayof是delphi的变体数组的创建方法,返回一个变体数组

    var 
      v:variant:
    begin
      v:=vararrayof([1,'delphi',2.1]);  
    end;
    locate如
    with Table1 doLocate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);
    按照顺序匹配company contact phone 数组’sight diver‘ ‘p’ ‘408-431-1000’
    如果有这样的记录存在同时都匹配locate就返回true 否则返回false
    你可以看看帮助
      

  2.   

    Locate方法查询找到相应的记录后指针会针到那条记录,那我有什么办法通过Table的方法让DBGrid中只显示查询到的记录呢,如果查询到的记录有多条,又应该怎么通过Table将那些记录显示在DBGrid中呢将你的查询条件写入 Table.Filter中,然后将Filtered设为True即可
    如:
      Table1.Filter := 'sName='+QuotedStr('X')+' and Confirm'+ ' and not IsDeleted';
      Table1.Filtered := True;
    注意:逻辑型字段的条件直接写字段名就好了