希望高手能详细讲解一下,如果有例子说明的话更好了:)

解决方案 »

  1.   

    利用TTable和TQuery的Filter属性
        1.在设计时设置Filter属性
        例如,设置Filter为:Country=′China′然后改变Filtered属性为True(注意,Filtered为True时过滤才有效)。则只能看到对应的Country字段内容为‘China’的记录。    设置Filter时可以使用的操作符有:<、>、<=、>=、=、<>、AND、OR、NOT。
        例如,设置Filter为:CustNo>=1000andCustNo<=5000,则只能看到顾客号在1000与5000之间的顾客记录。
        2.在程序运行期间进行动态过滤
        要在程序运行时改变Filter属性,这包括两种情况:
        (1)操作符右边为常量,例如:Table1Filter:=′State′+′=′+′′′HI′′′;
       注意:字符串常量必须用三对单引号括起来。
        (2)操作符右边不为常量,可能是通过一个变量指定的值,或由一输入框给出的值。这时需要用到Format函数。其代码形式为:Table1Filter:=Format(′State′+′=′+′′′%S′′′,[StateValue]);其中StateValue为已经赋值的一个字符串变量,也可以为其他形式,例如:Edit1Text。
      

  2.   

    如果Filter后面是字符串的话,是不是这么写:
    Table.Filter:='Name='''+trim(Edti.Text)+'''';
    如果后面是整型的话,应该怎么写?
    如果后面是日期的话,又应该怎么写,比如EndDate<=2008/9/1的话转成Filter该怎么写?
      

  3.   

    和普通的WHERE语句没啥区别如果是字符串的可以用
    '字段='+QuotedStr('字符串');
      

  4.   

    1、如果将CustNo>=1000andCustNo <=5000写到Filter里面的话,完整的格式应该是怎样的?
    2、Table1.Filter:=′State′+′=′+′′′HI′′′;可否写成Table1.Filter:='State='''+Hi'''';   
      

  5.   


    var
     i:Integer;
    begin
      i:=1;
      Table1.Filter:='id='+IntToStr(i);
      Table1.Filtered:=True;
    end;
      

  6.   

    如果后面是日期的话,又应该怎么写,比如EndDate <=2008/9/1的话转成Filter该怎么写?
    ------------------------------------------------------------------------
      adoquery1.Filter:='EndDate<='+Formatdatetime('yyyy-mm-dd',StrToDate('2008/9/1'));//转成相应的日期格式
      adoquery1.Filtered:=true;