一个数据表中有一个字段CTelTime是TDateTime型的。
我想用FILTER过滤这个表。
我现在写的filter是。
filter:='CTelTime'+findCTelTime;
filterd:=true;
findCTelTime为一个字符串。是经过DateTimetostr变换过来的。
但运行是出错。请问为什么呀?要怎么写呢

解决方案 »

  1.   

    filter:='CTelTime ='+findCTelTime;
      

  2.   

    楼上的朋友说的对!但是你的CTelTime是什么类型的的呢?如果是DateTime那和楼上的就应该行了,但如果不是的的话那你就要好好考虑了!如,转换后的字符串格式是不是一致!或者还要使用
    filter:='CTelTime ='+QuotedStr(findCTelTime);
    实在不行,把错误代码也贴出来看看!
      

  3.   

    findCheckedIdx:array of integer;//全局变量
    findCTelTime:string; with dminfo.tbREL_SEND_4 do 
       begin
            filter:='CTelTime='+findCTelTime;//这里出错, CTelTime字段是TDateTime类型
            filtered:=true;
            i:=Recordcount;
            filtered:=false;
            setlength(findCheckedIdx,i);
            i:=0;
            while not eof do 
            if fieldbyname('CTelTime').AsDateTime=strtoDateTime(findCTelTime) then
            begin
              findCheckedIdx[i]:= FieldByName('CheckedIdx').Asinteger;
              inc(i);
            end;
      end;
      

  4.   

    由于你的findCTelTime经过转换后可能包含到秒的信息,所以这样的精度下没有符合条件的记录,你试试这样吧
    filter:='CTelTime like ''%'+findCTelTime+'%''';
    filterd:=true
      

  5.   

    like 是模糊查找吗?加%是干什么的?我那个不是查不到,而是报错,程序运行到那里出现异常