TClientDataSet.Filter里的值是:姓名='张三'好像不能过滤,找不到这条记录,如果:姓名='ABC'倒是可以,请高手指点

解决方案 »

  1.   

    不如试试  like ‘张三’?
    不过我用时觉得挺好用。
      

  2.   

    TClientDataSet.Filtered=True;加上这句就可以了
      

  3.   

    TClientDataSet.Filtered=True;必须加上这句
      

  4.   

    使用 Like 出现类型不匹配的错误
      

  5.   

    我试了,能正常过滤,
    查看其他问题,如字段值或Filter'张三'前有无空格
      

  6.   

    不如在程序里赋值tClientDataSet1.filtered:=false;
    tClientDataSet1.filter:='姓名=''张三''';
    tClientDataSet1.filtered:=true;
      

  7.   

    BUG,BUG,BUG没用,没用..................中文啊............
      

  8.   

    是否是汉字内码的问题,关闭Office XP 的高级文字服务试试。
      

  9.   

    今天有发现用Locate('姓名','张三',[])也定位不到,昏ing...
    我用的是Dephi6,
    哪位没有这个问题的用的是几请告知,(要么7)
    小弟不胜感谢!
      

  10.   

    请大家注意,是TClientDataSet而不是TTable或TQuery或TADODataSet等
      

  11.   

    在被过虑的字符串前加个QuotedStr函数试试!
      

  12.   

    如果是下面:
    有一个设计时定义好的ClientDataSet组件cds_User,里面有字段"姓名,性别,年龄",
    如果我这样:
    cds_User.CreateDataSet;
    cds_User.LoadFromFile('文件'); //这里的文件是用cds_User.SaveToFile('文件');
    cds_User.Locate('姓名','张三',[]);  ///这样就OK
    cds_User.Filter:=Format('%s=''%s''',['姓名','张三']);
    cds_User.Filtered:=True;    //这样也OK
    //也就是说如果不使用DataSetProvider取得数据,数据搜索是没有问题的
    //如果使用了DataSetProvider+ADODataSet的话,就出问题,但设置ADODataSet.Filter倒是可以搜索和过滤,不过前提是设置后cds_User必须Open或Refresh一下,效率不高,频繁使用到的话就不行了...还希望各位高手救命!!!!!
    小弟再次谢了!!!!!