客户端中clientdataset中的fliter属性对中文处理是有bug的,即不能以中文作为条件。
例如name='apple'或者name='app%'可以得出正确查询结果,但如果是name='李明'或name='李%'都不能得出结果。
我怀疑clientdataset对双字节字符都存在这样的bug。请问大家有什么高见和解决的方法。在线等候。

解决方案 »

  1.   

    已经升级到最新的patch 2了
      

  2.   

    可以用Query   
    不用过滤可以吗 ?
      

  3.   

    fliter='name=李明'或fliter='name=李%' 试试。
      

  4.   

    To: 54efei(郁闷的阿飞)
    这样试过了不行。TO:wjlsmail(计算机质子)
    怎样用query? 具体是什么?
      

  5.   

    我用着没问题,
    filter := 'name = ''李明'''; 
    filtered := true;
      

  6.   

    我用过的,再不就像
    总之对Filter赋值要Filter=......
    而不能Filter=...+...行的。
      

  7.   

    apache57(虾米) ,我不知道你是怎么用的,反正我那里确实不行,MIDAS论坛那里也曾讨论过这个问题,可惜没有一个完美的答案。outer2000(天外流星) ,我当然知道用sql,问题怎么把语句传回remote data module?54efei(郁闷的阿飞),这样的结果只有一个:field 李明 not found.
      

  8.   

    filter := 'name = ''李明'''; 
    filtered := true;
    这样不行吗,我刚做了个demo,可以啊
    你用什么数据库,这个字段是什么类型?
      

  9.   

    数据库是SQL Server,字段是nvarchar.
    你引用李明的是双引号还是两个单引号?
    如果是双引号的话,出错显示:非法filter表达字符""
    如果是两个单引的话,没有出错,但查询出来的是一篇空白。
      

  10.   

    我不知道你是怎么做到的,那边也有人遇到这样的问题,你可以看看:http://expert.csdn.net/Expert/topic/1118/1118469.xml?temp=1.957339E-02
      

  11.   

    BDE 下select * from TableName where name =: Value ;Query1.ParamByName('ParamName').AsString := 'Apple/李明' ;
      

  12.   

    ADO 下 :select * from TableName where name =: Value ;ADOQuery1.Parameters.ParamByName('ParamName').AsString := 'Apple/李明' ;
      

  13.   

    filter := 'name = '+quotedstr('name');
    filtered := true;
    即可
      

  14.   

    clientdataset1.filter:='name = '+quotedstr('name');
    clientdataset1.filtered := true;
    即可
      

  15.   

    catch2008() ,还是不行啊,如果quotedstr('name')里面的name是中文的话,查询结果是一遍空白,换成英文或数字就正常了。各位高手一定要帮帮我,我赶着程序要交啊
      

  16.   

    Sql Server 2000 , ADO 链接
    Delphi中,String , Sql Server 2000中 char(20)Sql.Text := 'select * from TableName where name = ''中文'' ';可以
      

  17.   

    那是三层结构啊,客户端用clientdataset啊  !!!!
      

  18.   

    with ClientDataset1 do
    begin
      Close;
      CommandText := 'select * from TableName where name = ''中文'' ';
      Open;
    end;可以吗 ?