TTable中,如果设定filter=''fieldname'='fieldvalue*'',那么只能搜索出以fieldvalue开头的记录,如何实现象SQL语句的Like '%..fieldvalue..%'这样的功能呢?就是说我想找出所有含有fieldvalue的记录。fieldvalue是可变的,也就是用户输入的。

解决方案 »

  1.   

    估计只能在onfilter中计算了
    if pos(fieldvalue,fields[3].asstring)>0 then
      Accept := true
    else
      Accept := false;
      

  2.   

    用Pos的话,结果一定是大于0啊,不论这个字在哪里,一定是存在的呀.
      

  3.   

    Pos:在字符串中找到匹配的為非零(要找的字符串的位置),否則返回-1
      

  4.   

    我是说如果输入包在含在内的字的话,结果一定是大于0啊.
    比如说我想查找"中国第一汽车制造厂",这个单位的名称,怎样输入"一",就把它找到.用Filter
      

  5.   

    adoquery1.filter:='name like ''%一%'''
    adoquery1.filted:=true;
      

  6.   

    错误提示:Capability not supported.
    我用的是TTable
      

  7.   

    adoquery1.filter:='name like '+''''+'%'+'一'+'%'+''''
      

  8.   

    to  zybegin(talaha) 
    这样可以吗?在sql语句中可以啊,这里好象是不行啊
      

  9.   

    我知道ADOQuery是可以的,请大家帮忙考虑一下TTable行吗?
      

  10.   

    table1.filtered:=false;
    table1.filter:='name like '+''''+'%'+trim(edit1.text)+'%'+''''
    table1.filtered:=True;