Delphi中TQuery.Filter用法

 今天维护一个老项目是用delphi5 + BDE写的。为了更方便查询数据,就增加一个查询功能.由于数据量查询出来后就比较少,于是就想到Filter like

但 BDE并不支持 Filter = 'name like'  BDE的模糊查询只有' name = A*' 匹配只能从第一个字母开始,无法达到要求.后来在OnFilterRecord中解决

 

由于

 TQuery.Filtered := False;

TQuery.Filtered := True;

会触发OnFilterRecord事件

于是写一个事件处理过程

procedure OnFilterRecord(DataSet: TDataSet; Accetp:Boolean)

begin

  Accept := False;//所以值不显示

 if Pos('9787',DataSet.FieldsByName('青年文摘').AsString) > 0 then

 Accept := True;

end;

得以实现

posted @ 2012-03-13 22:09  TryHard  阅读(6698)  评论(0编辑  收藏  举报