下面这段代码:
  with ClientDataSet1 do
  begin
    Filtered:= False;
    Filter:= Format('%s LIKE ''%s''', ['Department_ID', StrPas(Node.Data) + '__']);
    Filtered:= True;
  end;用ClientDataSet运行正确,用ADOQuery就出错‘参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突’。为什么?

解决方案 »

  1.   

    肯定了 Filter:= Format('%s LIKE ''%s''', ['Department_ID', StrPas(Node.Data) + '__']);
    放在ADOQUERY里参数是不正确的
      

  2.   

    property Filtered: Boolean;它返回的是一个Boolean变量的值
      

  3.   

    Filter := 'State = ' + QuotedStr('CA') + ' OR ' +
        'State = ' + QuotedStr('CA');
    参考delphI帮助
      

  4.   

    Filter:= 'Department_ID  LIKE %'+ StrPas(Node.Data) + '__';
      

  5.   

    标题有点大
    这个问题的标题改为“TADOQuery 的 Filter怎么用”比较合适
      

  6.   

    Filter:= Format('%s LIKE ''%s''', ['Department_ID', StrPas(Node.Data) + '__%']);(注:是不是少了%)
      

  7.   

    Filter可以用LIKE吗?我一直不知道啊,怎么用的?是否象SQL一样 LIKE '%abc%'
      

  8.   

    你的模糊查询时处理:
    .....like  :P1
    form1.adoquery1.parameter.parabyname('P1').value:='%abc%'
      

  9.   

    我只是希望匹配两个字符,所以用'__'但是在Query中出错,ClientDataSet就没问题,但是如果是'A__',就不会出错。