我的程序是这样的:
 procedure TF_main.Button1Click(Sender: TObject);
var
   start,over:tdatetime;
   begin
   start:=DateTimePicker1.Datetime;
   over:=DateTimePicker2.Datetime;
   with adoquery1 do
   begin
    close;
    sql.Text:='select * from sjb where jrsjzd between   start and over  ';
    open;
   end;
 end;
请问为什么结果总是错,提示START没有初始化.急.....

解决方案 »

  1.   

    procedure TF_main.Button1Click(Sender: TObject);
    begin
       with adoquery1 do
       begin
        close;
        sql.clear;
        sql.Text:='select * from sjb where jrsjzd between :start and :over ';
        Parameters.ParambyName('start'):=DateTimePicker1.Datetime;
        Parameters.ParambyName('over'):=DateTimePicker2.Datetime;
        open;
       end;
     end;
      

  2.   

    不行呀,你试过吗?这句有问题:Parameters.ParambyName('start'):=DateTimePicker1.Datetime;
      

  3.   

    select * from sjb where jrsjzd between   #2004-01-01# and #2004-12-01#
      

  4.   

    这个我会,我要用DateTimePicker1.Datetime来进行时间的选择
      

  5.   

    不行呀,你试过吗?这句有问题:Parameters.ParambyName('start'):=DateTimePicker1.Datetime;错误的代码,贴出来看看。
      

  6.   

    不行呀,你试过吗?这句有问题:
    Parameters.ParambyName('start'):=DateTimePicker1.Datetime;
      

  7.   

    改为:Parameters.ParambyName('start').asdate:=DateTimePicker1.Date;
      

  8.   

    procedure TF_main.Button1Click(Sender: TObject);
    begin
       with adoquery1 do
       begin
        close;
        sql.clear;
        sql.Text:='select * from sjb where jrsjzd between :start and :over ';
        Parameters.ParambyName('start').AsDateTime:=DateTimePicker1.Datetime;
        Parameters.ParambyName('over').AsDateTime:=DateTimePicker2.Datetime;//或:Parameters.ParambyName('start').asdate:=DateTimePicker1.Date;
    //  Parameters.ParambyName('over').asdate:=DateTimePicker2.Date;    open;
       end;
     end;
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);begin
       with adoquery1 do
       begin
        close;
        sql.clear;
        sql.Text:='select * from sjb where jrsjzd between :start and :over ';
        Parameters.ParambyName('start').asdate:|(光标亭止)=DateTimePicker1.Date;
       Parameters.ParambyName('over').asdate:=DateTimePicker2.Date;
        open;
       end;
       end;
    end.提示:[Error] wj5.pas(41): Undeclared identifier: 'asdate'
         [Error] wj5.pas(42): Illegal character in input file: ' ' ($A1A1)
      

  10.   

    procedure TForm1.Button1Click(Sender: TObject);begin
       with adoquery1 do
       begin
        close;
        sql.clear;
        sql.Text:='select * from sjb where jrsjzd between :start1 and :over1';
        Parameters.ParambyName('start1').value=DateTimePicker1.Date;
       Parameters.ParambyName('over1').value:=DateTimePicker2.Date;
        open;
       end;
       end;
    end.
    试试。
      

  11.   

    有点进展,
    Parameters.ParambyName('over1').value:=DateTimePicker2.Date;
    这句出了这样的提示:
    [Error] wj5.pas(42): Illegal character in input file: ' ' ($A1A1)谢谢指点
      

  12.   

    begin
      with adoquery1 do
           begin
           close;
           sql.clear;
           sql.Text:='select * from lstz where rq between :start1 and :over1';
           Parameters.ParambyName('start1').value:=DateTimePicker1.Date;
           Parameters.ParambyName('over1').value:=DateTimePicker2.Date;
           open;
           end;
    end;
    我试过了.OK!
      

  13.   

    [Error] wj5.pas(42): Illegal character in input file: ' ' ($A1A1)
    请注意语句 Parameters.ParambyName('over1').value:=DateTimePicker2.Date;
    前面的空格。最好删除语名前导的字符,然后再打空格上去。粘贴我的代码吧.
      

  14.   

    http://dev.csdn.net/article/53/53439.shtm  DBGrid应用全书(一) 
    http://dev.csdn.net/article/53/53440.shtm  DBGrid使用全书(二)
    http://dev.csdn.net/article/53/53441.shtm  DBGrid使用全书(三) 
    http://dev.csdn.net/article/53/53442.shtm  DBGrid使用全书(四)
    http://dev.csdn.net/article/53/53443.shtm  DBGrid使用全书(五)