我的查询代码:
procedure Tddfform.btnInquClick(Sender: TObject);begin adoquery1.close;
 adoquery1.SQL.Clear;
 adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff'); adoquery1.sql.add('where llrq >= BegDate and llrq<=EndDate(dd,1,:EndDate)'); adoquery1.parameters.ParamByName('BegDate').value := DateTimePicker1.date;
 adoquery1.parameters.ParamByName('EndDate').value := DateTimePicker2.date;
 adoquery1.Open
end;可以正常运行,可是单击按钮的时候提示parameter BegDate not found 请大家看看!

解决方案 »

  1.   

    adoquery1当时还处在关闭状态,当然找不到数值了
      

  2.   

    adoquery1.sql.add('where llrq >= :BegDate and llrq <=EndDate(dd,1,:EndDate)'); //少个冒号
      

  3.   

    procedure Tddfform.btnInquClick(Sender: TObject); 
    begin 
      adoquery1.close; 
      adoquery1.SQL.Clear; 
      adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff'); 
      adoquery1.sql.add('where llrq >= BegDate and llrq <=EndDate(dd,1,:EndDate)'); 
      adoquery1.Open;
      adoquery1.parameters.ParamByName('BegDate').value := DateTimePicker1.date; 
      adoquery1.parameters.ParamByName('EndDate').value := DateTimePicker2.date; 
    end;
      

  4.   


    兄弟照你的改了。可是现在又提示这个错误提示:missing operator or semicolon
      

  5.   

    恩。呵呵。发现了。没有;我也是边学边在做软件,比较头疼。公司的任务。汗~郁闷死我了~现在可以正常运行了。但是他提示EndDate不是可以识别的函数名。
      

  6.   

    谁都是一步步从零学起的,没什么。EndDate(dd,1,:EndDate)  这段代码可能有问题,至少这样书写,delphi会把EndDate识别成函数。因为不了解你具体的意思,所以我也没法帮你改动
      

  7.   

    procedure Tddfform.btnInquClick(Sender: TObject); begin adoquery1.close; 
    adoquery1.SQL.Clear; 
    adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff'); adoquery1.sql.add('where llrq >= :BegDate and llrq <=DateAdd(dd,1,:EndDate)'); adoquery1.parameters.ParamByName('BegDate').value := DateTimePicker1.date; 
    adoquery1.parameters.ParamByName('EndDate').value := DateTimePicker2.date; 
    adoquery1.Open 
    end; 
      

  8.   


    恩。我已经把这代码取掉了。改成了adoquery1.sql.add('where llrq >= :BegDate and llrq <= :EndDate'); 现在可以正常运行了。查询也不提示错误了。不过就是DBGrid显示不了查询的数据。我数据库里的时间是2009-5-27 11:33:00 而我的DateTimePicker1空间只显示了年月日,会不会查询的时候没有精确到11:33:00所以没找到匹配数据没法显示!
      

  9.   

    不会,DateTimePicker1.date有默认的是时间的
      

  10.   


    楼主试试ShowMessage(DateTimeToStr(DateTimePicker1.datetime));
    DateTimePicker1.datetime 的默认为现在的时间
      

  11.   


    DateTimePicker1.date默认时间我改成了00:00:00,DateTimePicker2.date默认时间我改成了23:59:59 这样我选择日期的话,比如DT1选择的是2009-5-26 DT2选择的是2009-6-1。那么它查询的时候是不是就2009-5-26 00:00:00到2009-6-1 23:59:59
      

  12.   


    改了 adoquery1.parameters.ParamByName('BegDate').value := DateTimePicker1.datetime;
     adoquery1.parameters.ParamByName('EndDate').value := DateTimePicker2.datetime;还是不能显示数据么。有QQ吗?加下。我的1681111685
      

  13.   

      adoquery1.close;
      adoquery1.SQL.Clear;
      adoquery1.sql.Text := 'select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff'+
                            'where llrq >= :BegDate and llrq <=EndDate(dd,1,:EndDate)';  adoquery1.parameters.ParamByName('BegDate').value := DateTimePicker1.date;
      adoquery1.parameters.ParamByName('EndDate').value := DateTimePicker2.date;
      adoquery1.Open
    这句EndDate(dd,1,:EndDate)没看懂,是什么数据库呀
      

  14.   


    之前弄错掉了。这才是
     adoquery1.close;
     adoquery1.SQL.Clear;
     adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff');  adoquery1.sql.add('where llrq >= :BegDate and llrq <= :EndDate');
      adoquery1.Open;
     adoquery1.parameters.ParamByName('BegDate').value := DateTimePicker1.date;
     adoquery1.parameters.ParamByName('EndDate').value := DateTimePicker2.date;
      

  15.   

    这段代码细看看,问题很多。adoquery1.parameters.ParamByName('BegDate').value := DateTimePicker1.datetime; 
    adoquery1.parameters.ParamByName('EndDate').value := DateTimePicker2.datetime;
    这两行干脆不要了,改成下面的
    procedure Tddfform.btnInquClick(Sender: TObject);
    var
      bd,ed:datetime; 
    begin
      bd := DateTimePicker1.datetime; 
      ed := DateTimePicker2.datetime; 
      adoquery1.close; 
      adoquery1.SQL.Clear; 
      adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff'); 
      adoquery1.sql.add('where llrq >=: bd and llrq <=: ed'); 
      adoquery1.Open; 
    end;
      

  16.   


    undeclared identifier:'datetime'
      

  17.   

    adoquery1.parameters.ParamByName('BegDate').value := DateTimePicker1.date; 
    adoquery1.parameters.ParamByName('EndDate').value := DateTimePicker2.date;
    放在open前
      adoquery1.Open;