今天维护一个老项目是用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;
得以实现