我在 ADOQuery2 中有一个查询。现在我想要一个过滤器,所以:
ADOQuery2.Filter := 'where Fname like ' + QuotedStr(Txt_Search.Text + '*');
ADOQuery2.Filtered := true;
但它抛出了这个异常:(*
在like语句中是针对Access而不是%
)
任何想法?
我在 ADOQuery2 中有一个查询。现在我想要一个过滤器,所以:
ADOQuery2.Filter := 'where Fname like ' + QuotedStr(Txt_Search.Text + '*');
ADOQuery2.Filtered := true;
但它抛出了这个异常:(*
在like语句中是针对Access而不是%
)
任何想法?
在 Access 本身中使用 LIKE 运算符时,星号*
是正确的通配符,但对于来自其他应用程序(如您的应用程序)的 ADO 连接,您实际上应该使用%
SQL 的“标准”百分比通配符。
试试这个,效果很好
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;