unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, Grids, DBGrids, Db, ADODB;type
  TForm1 = class(TForm)
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DateTimePicker1: TDateTimePicker;
    procedure FormShow(Sender: TObject);
    procedure DateTimePicker1Change(Sender: TObject);
  private
    { Private declarations }
  public
    iyear,imonth,iday:word;
    dday,dtomorrow:TDateTime;
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormShow(Sender: TObject);
begin
  datetimepicker1.DateTime:=date;
  with ADOQuery1 do begin
    close;
    sql.Clear;
    sql.Add('Select * from TabTask order by WCdate DESC');
    open;
  end;
end;procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
  decodedate(DateTimePicker1.DateTime,iyear,imonth,iday);
  dday:=encodeDate(iyear,imonth,iday);
  dtomorrow:=encodeDate(iyear,imonth,iday)+1;
  try
    with ADOQuery1 do begin
      close;
      sql.Clear;
      sql.Add('select * from TabTask where WCHDate between :day and :Tomorrow');
      Parameters[0].Value:=dday;
      Parameters[1].Value:=dtomorrow;
      open;
    end;
  except
    //
  end;
end;end.数据库:ACCESS 表名:TabTask 主要字段:name(text(20)),WCHDate(datetime-常规日期);    这样的问题在使用DAOQuery,Query时不会出现,请教是什么原因,如果仍然使用ADOQuery控件,如何解决!?

解决方案 »

  1.   

    ADO的确有些问题,我在CORBA服务器中调用存储过程时就出错,不用ADO就没错
      

  2.   

    通常建议不要使用参数形式执行SQL语句~~
    所以现在也建议~~
    这样的好处在于:
    No.1 执行速度快(免去参数转换的过程);
    No.2 可以直接在数据库查询分析器中调试SQL语句。procedure TForm1.DateTimePicker1Change(Sender: TObject);
    begin
      try
        with ADOQuery1 do begin
          Close;
          SQL.Text := Format(
    'SELECT *'#13#10 +
    'FROM TabTask'#13#10 +
    'WHERE WCHDATE BETWWEEN #%s# AND #%s#'#13#10,
            [FormatDateTime('YYYY-MM-DD', TDateTimePicker(Sender).DateTime),
             FormatDateTime('YYYY-MM-DD', TDateTimePicker(Sender).DateTime + 1)]);
          Open;
        end;
      except
        //
      end;
    end;
      

  3.   

    zswang(伴水)(现在是专家门诊清洁工) 好像还是不行啊!
      

  4.   

    BETWWEEN -> BETWEEN 直接到Access中调试语句先~~