Using LIKE statement for filtering
delphi, delphi-7
Solution
A `TTable.Filter` isn't a SQL query. `LIKE` isn't supported (neither is `IN`). The supported operators are `=`, `<>`, `>`, `<`, `>=`, '<=`,`AND`,`NOT`and`OR`, according to the documentation
For more complicated filtering, use the TDataSet.OnFilterRecord event:
procedure TForm1.Table1FilterRecord(Dataset: TDataset; var Accept: Boolean);
begin
// Don't remember if D7 supports DataSet[FieldName] syntax; if not,
// use DataSet.FieldByName instead, or a persistent field.
Accept := Pos(Edit_Search.Text, DataSet[SearchField].AsString) > 0;
end;
Problem
Im using this code to filter my table: ``` Table.Filtered := False; Table.Filter := '[' + Field_Search + '] LIKE ''%' + Edit_Search.Text + '%'''; Table.Filtered := True; ``` but it raises this exception: "Operation not applicable." where is problem?