delphi - 表中的部分搜索(BDE)

标签 delphi delphi-7

我使用悖论7创建了一个数据库。我通常进行的搜索是这样的语法:

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


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

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


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

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


谢谢。

最佳答案

您可以使用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;

关于delphi - 表中的部分搜索(BDE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3989982/

相关文章:

delphi - 在绘制到 Canvas 之前计算文本大小

delphi - 如何使用TDBGrid中的复选框选择多条记录?

.net - JclDotNet,以及一些使用汇编程序的奇怪调用模式

delphi - 项目加载速度更快

delphi - 如何检查Shader Model 3.0支持?

delphi - 如何检查我的应用程序从磁盘写入和读取了多少字节?

将 C 头文件转换为 delphi

delphi - 是否可以将整个 const block 标记为已弃用?

delphi - 使用 TryStrToDate 对日期进行特定验证

Delphi - 将 NtCreateKey 与 HKCU 结合使用