我使用下面的SQL语句,用BDE中的query1中可以通过,一但换成ADO中的Adoquery1就出错了,不知道是什么原因,请指教!
  Adoquery1.close;
  Adoquery1.sql.clear;
  Adoquery1.sql.add(' where (datea>=:g1 and datea<=:g2) ');
  Adoquery1.params[0].asdate:=DateTimePicker1.date;//就是这句出错
  Adoquery1.params[1].asdate:=DateTimePicker2.date;
  Adoquery1.open

解决方案 »

  1.   

    Adoquery1.close;
      Adoquery1.sql.clear;
      Adoquery1.sql.add(' where (datea>=g1 and datea<=g2) '); 
     Adoquery1.params[0].asdate:=DateTimePicker1.date;//就是这句出错
      Adoquery1.params[1].asdate:=DateTimePicker2.date;
      Adoquery1.open
    要把日期型转换成字符型
    Adoquery1.params[0.asstring:=datetostr(DateTimePicker1.date);//就是这句出错
      Adoquery1.params[1].asstring:=datetostr(DateTimePicker2.date);
    试试!  Adoquery1.close;
      Adoquery1.sql.clear;
     Adoquery1.sql.add('select * from 表名 where datea>=‘+#39+datetostr(DateTimePicker1.date)+#39’;//and datea<=‘+#39+datetostr(DateTimePicker2.date)+#39’'); 
    Adoquery1.open//不用参数,用这个语句肯定能查出来了
      

  2.   

    Adoquery1.close;
      Adoquery1.sql.clear;
      Adoquery1.sql.add(' where (datea>=:g1 and datea<=:g2) ');
      Adoquery1.params[0].value:=DateTimePicker1.date;
      Adoquery1.params[1].value:=DateTimePicker2.date;
      Adoquery1.open;
      

  3.   

    Adoquery1.params[0].asdate
    >>>>改成Adoquery1.params[0].Value不用转化的