dmClient.cdActivity.Active:=false;
dmClient.cdActivity.Active:=true;
dmClient.cdActivity.Filtered:=false;
dmClient.cdActivity.Filter:='activityvUserId=1'
dmClient.cdActivity.Filtered:=true;其中cdActivity是一个TclientDataset,总是过滤不了,请高手们看看。谢谢

解决方案 »

  1.   

    是不是dmClient.cdActivity.Filter:='activityvUserId=''1'''
      

  2.   

    楼上的兄弟,不是的,我的activityvUserId是integer类型的
      

  3.   

    自己检查一下:
    1.表字段名称有没有写错
    2.再显示前有没有把filtered关了?
    3.看看代码中是否用了什么全角诸如此类的书写还不行的话,把代码给别人调试吧
      

  4.   

    何不采用commandtext:='select * from b where 条件';
    又简单又快
      

  5.   

    我发现了一个问题,如果用filtering后,dbgrid显示(利用Tdatasource连接)出被过滤成功,但是Tclientdataset.data并没有被过滤,还是过滤前的数据。
    请各位同仁注意!!!!
      

  6.   

    据我所知,clientdataset过滤汉字有问题,不能对汉字进行过滤,需要通过socket发送过滤条件到服务器端,从服务器端进行过滤,但是对于数字和英文的过滤没有问题
      

  7.   

    “我发现了一个问题,如果用filtering后,dbgrid显示(利用Tdatasource连接)出被过滤成功,但是Tclientdataset.data并没有被过滤,还是过滤前的数据。”
    Tclientdataset.data确实还是那些数据,但是你用如下语句
    with TCliertnDataSet1 do
    begin
      first;
      while not Eof do
      begin
        ...
        next;
      end;
    end;
    遍历的话,得到的还是你过滤过的数据
      

  8.   

    不会吧,我也是用CLIENTDATASET呀,也是用FILTER过滤呀,
    可以的呀