TTable可以进行过滤,
但过滤条件太简单了,只能是 col1=val1 and col2=val2 or col3=val3
现在我要过滤的条件里有 UserID in ( select * from ...)
如果是TQuery则很容易实现了,但TTable却很难??

解决方案 »

  1.   

    建议你还是用Query吧,Filter只有简单的表达式才支持,要用In是不行的。
      

  2.   

    支持楼上
    Table不能使用复杂的条件,
    还是使用query方便。
      

  3.   

    如果你的userid的值是可以预知的,不妨试试用lookup函数
    function Lookup(const KeyFields: String; const KeyValues: Variant; const ResultFields: String): Variant;
      

  4.   

    TQuery不是很好吗!?干吗不用阿!是不是有什么其他原因?建议用TQuery
      

  5.   

    Filter只能实现对数据进行过滤。但是如果只是数据过滤,filter的功能也是很强的。例如:它支持
    比较运算=、<>、>=、<=、>、<、BLANK、IS NULL、IS NOT NULL
    逻辑运算And、Or、Not
    数学运算+、-、*、/
    字符串运算Upper、Lower、Substring、Trim、TrimLeft、TrimRight
    DateTime函数Year、Month、Day、Hour、Minute、Second、GetDate、Date、Time
    其他Like、In、*但注意,除了比较运算和数学运算所有的数据集都支持以外,后面的大都由TClientDataSet支持。
      

  6.   

    minercxy(Codewhy) 講的差不多了.
      

  7.   

    换控件动作作大的,因为工作方式不同要改许多东西
    所以,这个问题的前提只能是TTable,才难哪!
     cobi(我是小新) 的方法倒可试试…
      

  8.   

    我用MasterDataSet, MasterFields来作
    但还是不行
    因为MasterDataSet里的一条记录,对应TTable的多条
    而MasterDataSet里有多条, 则TTable里应该是更多多条
    所以浏览TTable里的所有记录就比较困难
      

  9.   

    MasterDataSet里的一条记录,对应TTable的多条????
      

  10.   

    可以在onfilterrecord事件中
    写代码
      

  11.   

    Query和TABLE一样的而且支持SQL   为什么不用它?
      

  12.   

    谢谢大家! Table的过滤条件还是不能用like, in.
    问题暂时解决了, 数据更新操作仍用Table, 查询的才用TQuery
    因为原来的功能都是通过Table实现的, 而且其他模块也可能用到此table,
    所以换成TQuery的话,改动太大了