C ++ Builder和Ado Filter

时间:2011-06-27 13:35:05

标签: ado c++builder c++builder-2010

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

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

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

2 个答案:

答案 0 :(得分: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 + "%'";

documentation未提及 LIKE 运算符,但我发现another website表明这是可行的。

答案 1 :(得分:0)

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

    ADOTable1.filter := 'firstName LIKE '+ QuotedStr('%'+Trim(Edit1.Text)+'%') ;