0

2つの異なるフィルターでテーブルをフィルター処理しようとしているので、ボタンが押されたときに表示されるレコードは、特定のJob_IDを持つレコードと、タイプが「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;

しかし、エラーメッセージ「このオペランドタイプに適用できない演算子」をコンパイルしようとすると、何か提案がありますか?ありがとう

4

2 に答える 2

3

フィルタプロパティは文字列である必要があります

DBTravel.DataSource.DataSet.Filter := Format('(Job_ID =%s) AND (Type=%s)',[edtAddJobID.Text,QuotedStr('Private')]);
于 2012-04-04T16:56:30.757 に答える
2

それFilterは文字列だと思います。したがって、文字列を指定する必要があります。

'(Job_ID = ' + edtAddJobID.Text + ') AND (Type = ' + QuotedStr('Private') + ')';
于 2012-04-04T16:56:24.023 に答える