Our BDE-based Delphi 7 application is running but the ADO version does not run due to the error:

'Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.'
The erring procedure is as follows:

var filterstr:string;
begin
filterstr:='PROJ_STATUS_CD <>''CLOSED'' AND
PROJ_STATUS_CD <>''CANCEL''' +
'AND DEL_FLAG IS NULL';
qryproject.filter:=filterstr; <== error
end;

There was no error when I changed the filter to
qryproject.filter:= 'PROJ_STATUS_CD = ''ACTIVE'' OR
PROJ_STATUS_CD = ''ACCEPT''';

The same error appeared when I changed the filter to
qryproject.filter:= 'DEL_FLAG IS NULL AND
(PROJ_STATUS_CD = ''ACTIVE'' OR
PROJ_STATUS_CD = ''ACCEPT'')';

In moving out of BDE to ADO, I am encountering many cases of code working in BDE but not in ADO. If someone can please explain.