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控件,如何解决!?
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控件,如何解决!?
解决方案 »
- 注册ocx的问题!
- 急求答案,关于dll参数传递和数据库连接的问题
- 有经验的人进来看看吧,有人注意到这个问题吗?
- QReport里面的如何加入图表?
- 请问adotable怎么用?谢谢
- 一个初学者的问题,请多指教!
- 新手上路:如何知道程序中有多少个窗体单元?特别是程序中有许多Availalde forms!
- 如何通过TClientDataSet将本地Access数据提交到服务器上
- 判断五子棋胜负条件的算法,求最优算法,一个月后结帐
- 前辈请进(Delphi 如何访问SQL server 中的数据库(编辑,修改, del ....)),怎样最有效。
- 怎样计算数据库中符合条件t=1的纪录的条数,并将数量复制给edit1
- 如何实现金山词霸2002启动时的效果?
所以现在也建议~~
这样的好处在于:
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;