我用paradox建表,表名为condtl,其中有字段condate,我想用datetimepicker查询此字段,可老是报错,在query中是这样写的:
   query1.close;
   query1.sql.clear;
   query1.sql.add('select * from condtl');
   query1.sql.add('where condate=
   '''+str(formatdatetime('mm/dd/yyyy',datetimepicker1.date))+'''');
query1.open;
谁能帮我看一下是怎么回事?谢谢!!!

解决方案 »

  1.   

    你的写法有问题,在写
    query1.sql.add('where condate=
       '''+str(formatdatetime('mm/dd/yyyy',datetimepicker1.date))+'''');
    的时候要留有个空格如:
    query1.sql.add('(空格) where condate=
       '''+str(formatdatetime('mm/dd/yyyy',datetimepicker1.date))+'''');
    再说了,如果想非常方便的来查询时间,我给你一个建议,将datetimepicker1.date的日期行
    改成文本型的数据,这样查询非常方便。具体方法可以这样:用decodedate(tdatetime:riqi,int:year,int:month,int:day)函数将其分解,然后再转换成STRING类型。自己试一下吧!!
      

  2.   

    错误信息是这样:
    [Error] Unit1.pas(35): Incompatible types
    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
      

  3.   

    保身么错,说清楚!
    另外formatdatetime()本来返回的就是string,不用再str()了。
    另外你str用的也不对呀procedure Str(X [: Width [: Decimals ]]; var S);你少参数的。
      

  4.   

    这个错?那没问题,一定是str()的问题,不要str()就行了。
      

  5.   

    不用str()也报错啊!也是类型不匹配!
      

  6.   

    datetimepicker1.date是TDateTime吗?
    你字段是什么类型的?不是字符串?
      

  7.   

    我用的paradox建的表,字段是date类型的。
      

  8.   

    改成
    query1.sql.add(' where condate='+formatdatetime('mm/dd/yyyy',datetimepicker1.date));
    试试。
      

  9.   

    这样应该没问题了把:
    query1.sql.add(' where condate='+quotedstr(formatdatetime('mm/dd/yy',datetimepicker1.date)));
      

  10.   

    query1.sql.add(' where condate='+datetimepicker1.date);