sqlstr:='select * from zl where csdate between :para1 and :para2';
Query1.Active:=false;
Query1.SQL.Clear;
Query1.sql.Add(sqlstr);
query1.parambyname('para1').asdatetime:=Strtodatetime(maskedit1.Text);
query1.parambyname('para2').asdatetime:=Strtodatetime(maskedit2.Text);
Query1.ExecSQL;
query1.Active:=true;

解决方案 »

  1.   

    日期一般有特殊标识符,看你的数据库是什么,如果是SQL SERVER:
    sqlstr:='select * from zl where csdate between “'+maskedit1.Text+'”  and  “'+maskedit2.Text+'” ';如果是ACCESS:
    sqlstr:='select * from zl where csdate between #'+maskedit1.Text+'#  and  #'+maskedit2.Text+'# ';
      

  2.   

    你的参数设置有问题,如netlib(河外孤星)设置的是比较好的方法。一般不要直接把maskedit之类的放到select语句里。
      

  3.   

    学习,
    我一般用的是netlib(河外孤星)的方法。
      

  4.   

    怎么能用Query1.ExecSQL?Query1.Open;