如何用filter属性对ClientDataSet中的Boolean字段条件进行数据过滤?

解决方案 »

  1.   

    filter:='Field=1'
    or
    filter:='Field=0'
      

  2.   

    hongqi162(失踪的月亮) 老兄, 这招好像不灵啊
      

  3.   

    filter:='Field.value=1'
    or
    filter:='Field.value=0'
      

  4.   

    filter:='booleanFieldName=1'
    or
    filter:='booleanFileName=0'
      

  5.   

    To hongqi162(失踪的月亮):
      我知道filter:='Field=1'中的Field是字段名称,我测试过了不对啊
      

  6.   

    设置好Filter属性后,还要设置Filtered为TrueFilter := 'age >= 20 and age <=30'
    Filtered := True;
      

  7.   

    对于字符串、数字等类型字段过滤没问题,但是对于布尔类型的字段这样过滤好像有问题啊。还有没有哪位大侠知道在TClientDataSet前端数据集中过滤的方法啊?
      

  8.   

    转自:http://hi.baidu.com/cncharles/blog/item/52fa99b181807656092302de.htmlClientDataset1.filter := ' Check=0'       ClientDataset1.filtered := true   或者ClientDataset1.filter := ' Check=False'       ClientDataset1.filtered := true  这样都可以过滤      而 ClientDataset1.filter := ' Check=1'       ClientDataset1.filtered := true或者 ClientDataset1.filter := ' Check=True'       ClientDataset1.filtered := true      却都不可以过滤       (注:Check=1       记录在sql       server中是存在的。       )解决方法:ClientDataset1.filter := ' Check'       ClientDataset1.filtered := true   
    如果是ADOQury 等ADO组件则不有问题.另外ClientDataSet.Filter功能比ADOX的Filter功能更强大, 支持若干内置函数.ClientDataSet Filter 是区分大小写的, 即使 FilterOptions 没有包含区分大小写的选项,ADOX是不区分大小写.详情查阅 delphi help 中关于 ClientDataSet Filter "Limiting what records appear " 章节.