DataSet 的 recordcount可以取得Dataset当前记录总数,但当使用过滤后,用recordcount取得仍然是一样的,但与在dbgrid显示的记录不一致,怎样可以快速取得过滤后的记录数?
谢谢!

解决方案 »

  1.   

    你DataSet 是不是设置了PacketRecords属性?默认是-1的
      

  2.   

    过滤后显示的就是过滤后的数据,用RecordCount也是返回过滤后的数据条数。
      

  3.   

    Dephi5edit1.text := inttostr(query_master.recordcount);
    // edit1.text 等于 "1"  对应的DBGride有显示记录
    FilterSrt:='1=2'
    query_master.Filter := FilterSrt  ;
    query_master.Filtered := true;
    edit1.text := inttostr(query_master.recordcount);
    // edit1.text 还是等于 "1" 但对应的DBGride显示记录为0
      

  4.   

    Dataset的recordcount返回什么数值取决你真实的类型和具体的驱动程序,如果是TClientDataSet就可以返回过滤后的记录。