I F U,没事情做,弄这些玩艺消遣呢?C程序员的陋习

解决方案 »

  1.   

    sqlstring:=sqlstring+'File.FileDate>=#'+formatdatetime('yyyy-mm-dd hh:nn:ss',date1.DateTime)
          +'# and File.FileDate<=#'+formatdatetime('yyyy-mm-dd hh:nn:ss',date2.DateTime)+'#';最好改成:sqlstring:=sqlstring+'File.FileDate between :StartDate and :EndDate'然后用Param赋值:Query1.ParamByName('StartDate').asDateTime:=date1.DateTime;
    Query1.ParamByName('EndDate').asDateTime:=date2.DateTime;
      

  2.   

    把sql.text用showmessage 显示出来看看,自己找找问题。
      

  3.   

    formatdatetime('yyyy-mm-dd hh:mm:ss',date1.DateTime)
                                  ~~
      

  4.   

    你加 #号是什么意思?我记得在sql server 中不用这么写
      

  5.   

    你们说的我都试过了,问题依旧,我用的是access数据库,字段Filedate是日期/时间类型。
      

  6.   

    sqlstring:=sqlstring+'File.FileDate>=#'+formatdatetime('yyyy-mm-dd hh:nn:ss',date1.DateTime)
          +'# and File.FileDate<=#'+formatdatetime('yyyy-mm-dd hh:nn:ss',date2.DateTime)+'#';
    这部分改成用参数的形式输出,造成错误的原因是'hh:nn:ss'被误以为是参数
      

  7.   

    sqlstring:=sqlstring+'File.FileDate>=#'+formatdatetime('yyyy-mm-dd hh:nn:ss',date1.DateTime)
          +'# and File.FileDate<=#'+formatdatetime('yyyy-mm-dd hh:nn:ss',date2.DateTime)+'#';
    这部分改成用参数的形式输出,造成错误的原因是'hh:nn:ss'被误以为是参数
      

  8.   

    sqlstring:=sqlstring+'File.FileDate>= :FileDate1 and File.FileDate<= :FileDate2';ADOQuery1.Parameters.ParamByName(FileDate1).Value := date1.DateTime;
    ADOQuery1.Parameters.ParamByName(FileDate2).Value := date2.DateTime;试试
      

  9.   

    忘了加引号了
    ADOQuery1.Parameters.ParamByName('FileDate1').Value := Date1.Datetime;ADOQuery1.Parameters.ParamByName('FileDate2').Value := Date2.Datetime;
      

  10.   

    谢谢各位,谢谢SnakeguoII(楠)老兄,我已经试过了,这种方式不行,依旧提示上述错误信息,我用的是accees  sql语句中日期两边必须加上#号!
    问题依旧!
      

  11.   

    谢谢各位,谢谢SnakeguoII(楠)老兄,我已经试过了,这种方式不行,依旧提示上述错误信息,我用的是accees  sql语句中日期两边必须加上#号!
    问题依旧!
      

  12.   

    哈哈,你们都错了,把adoquery的ParamCheck属性改成False后,一切Ok!