我使用此代码来过滤我的表:
Table.Filtered := False;
Table.Filter := '[' + Field_Search + '] LIKE ''%' + Edit_Search.Text + '%''';
Table.Filtered := True;
但它引发了这个异常:
“操作不适用。”
问题出在哪里?
A TTable.Filter
不是 SQL 查询。LIKE
不支持(也不支持IN
)。支持的运算符有=
, <>
, >
, <
, >=
, '<=,
AND,
NOTand
或`,根据文档
对于更复杂的过滤,请使用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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)