1

我正在使用 C++Builder 2010。我正在过滤一个 ADOTable,在 Edit1 OnChange 中我有:

    ADOTable1->Filter = "firstname like %" + Edit1->Text + "%";

输入空格、) 和 = 符号时会报告错误 输入过滤器的正确方法是什么?谢谢

4

2 回答 2

0

我没有 C++ Builder,但下面的代码适用于与 C++ Builder 非常相似的 Delphi:

    ADOTable1.filter := 'firstName LIKE '+ QuotedStr('%'+Trim(Edit1.Text)+'%') ;
于 2011-08-20T16:39:58.507 回答
0

我认为您需要在传递给Filter属性的字符串之前和之后使用单引号。

// QuotedStr example
ADOTable1->Filter = "firstname like '%" + QuotedStr(Edit1->Text) + "%'";

// StringReplace example
System::String temp; 
temp = StringReplace(Edit1->Text, "'", "''", TReplaceFlags() << rfReplaceAll);
ADOTable1->Filter = "firstname like '%" + temp + "%'";

文档没有提到LIKE运算符,但我发现的另一个网站表明这是可能的。

于 2011-06-27T18:40:39.087 回答