2

我在 ADOQuery2 中有一个查询。现在我想要一个过滤器,所以:

  ADOQuery2.Filter := 'where Fname like ' + QuotedStr(Txt_Search.Text + '*');
  ADOQuery2.Filtered := true;

但它抛出了这个异常:(*在like语句中是针对Access而不是%

在此处输入图像描述

任何想法?

4

2 回答 2

4

在 Access 本身中使用 LIKE 运算符时,星号*是正确的通配符,但对于来自其他应用程序(如您的应用程序)的 ADO 连接,您实际上应该使用%SQL 的“标准”百分比通配符。

于 2013-05-02T14:06:41.577 回答
0

试试这个,效果很好

if  Txt_Search.Text<> '' then
begin
    ADOQuery2.Filter := 'where Fname like '+QuotedStr(Txt_Search.Text+'*');
    ADOQuery2.Filtered := true;
end;

或者

if  Txt_Search.Text<> '' then
begin
    ADOQuery2.Filter := 'Fname like '+QuotedStr(Txt_Search.Text+'%');
    ADOQuery2.Filtered := true;
end;
于 2016-05-17T15:40:21.180 回答