【问题标题】:ADOQuery.Filter not working with LIKEADOQuery.Filter 不适用于 LIKE
【发布时间】:2013-05-02 05:22:37
【问题描述】:

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

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

但它会抛出此异常:(* in like 语句是用于 Access 而不是 %

有什么想法吗?

【问题讨论】:

    标签: delphi ms-access delphi-7 ms-access-2003


    【解决方案1】:

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

    【讨论】:

    • 啊啊谢谢你。像往常一样,我应该早点问谷歌/堆栈溢出的方式,但是不,我至少需要一个小时才能“承认我需要帮助”......
    【解决方案2】:

    试试这个,效果很好

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 2020-08-16
      相关资源
      最近更新 更多