运算符不适用于此操作数类型筛选表时

时间:2012-04-04 16:50:51

标签: delphi delphi-7

我试图使用2个不同的过滤器过滤表格,这样当按下按钮时,显示的唯一记录是具有特定Job_ID的记录和具有Type' Private'的记录。 我有以下代码:

if CBSearchType.Text = 'Private' then
begin
DBTravel.DataSource.DataSet.DisableControls;
            DBTravel.DataSource.DataSet.Filtered := False;
            DBTravel.DataSource.DataSet.Filter := ('Job_ID = '+edtAddJobID.Text) AND       ('Type = '+QuotedStr('Private'));
            DBTravel.DataSource.DataSet.Filtered := True;
            DBTravel.DataSource.DataSet.First;
            DBTravel.DataSource.DataSet.EnableControls;
end;

然而,当我尝试编译错误消息'运算符不适用于此操作数类型'显示,有什么建议吗? 感谢

2 个答案:

答案 0 :(得分:3)

filter属性必须是字符串

DBTravel.DataSource.DataSet.Filter := Format('(Job_ID =%s) AND (Type=%s)',[edtAddJobID.Text,QuotedStr('Private')]);

答案 1 :(得分:2)

我认为Filter是一个字符串。因此,你必须给它一个字符串。

'(Job_ID = ' + edtAddJobID.Text + ') AND (Type = ' + QuotedStr('Private') + ')';