表格中的部分搜索(BDE)

时间:2010-10-21 16:59:03

标签: delphi delphi-7

我使用paradox 7制作了一个数据库。我通常的搜索是这样的语法:

Table.Filter := 'Country=' + QuotedStr(Edit.Text);

这将返回那些国家/地区字段与编辑中输入的文本相同的行。当我想搜索国家以“L”开头时,我使用这种语法:

Table.Filter := 'Country=' + QuotedStr(Edit.Text + '*');

但是如何搜索那些以“L”结尾的字段?此语法不起作用:

Table.Filter := 'Country=' + QuotedStr('*' + Edit.Text  );

感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用OnFilterRecord事件执行自定义过滤。用你的例子,也许吧......像这样:

procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
var
  s: string;
begin
  Accept := False;
  if not DataSet.FieldByName('Country').IsNull then begin
    s := DataSet.FieldByName('Country').AsString;
    Accept := Copy(s, Length(s), 1) = 'L';
  end;
end;