今天維護一個老項目是用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;
得以實現