ODBC+ADOQuery1,以“时间”为条件对数据库中的信息进行查找,为何无法显示数据(用到DateTimePicker控件)

jshg101 2006-06-11 08:13:49
我用的数据源是ODBC,数据库是SQL2000,控件是ADOConnection和ADOQuery
数据库OutGoods表中“出楼日期”字段类型为DateTime
代码如下:
DMHouseManage.ADOQuery1.Active:=true;
with DMHouseManage.ADOQuery1 do
begin
SQL.Clear;
SQL.Add('SELECT * FROM OutGoods where ') ;

SQL.Add('出楼日期 like '+''''+DateToStr(DateTimePicker2.Date)+'%'+'''');
open;
end;
查找不到数据,但是同样的语句放在ACCESS中可以显示出查询结果。

程序改成如下:
with DMHouseManage.ADOQuery1 do
Begin
SQL.Clear;
SQL.Add('Select * FROM OutGoods where 出楼日期 =:A');
Parameters.ParamByName('A').Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker2.DateTime);
open;
end;
会出现“[ODBC SQL Server Driver]没有执行可选特性”错误

...全文
95 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rubi 2006-06-11
  • 打赏
  • 举报
回复
日期一般都是=,>,<等等
sxtdxvb 2006-06-11
  • 打赏
  • 举报
回复
呵呵 日期一般用 between and 查询.
jshg101 2006-06-11
  • 打赏
  • 举报
回复
DMHouseManage.ADOQuery1.Active:=true;
with DMHouseManage.ADOQuery1 do
begin
SQL.Clear;
SQL.Add('SELECT * FROM OutGoods where 出楼时间 like '+''''+'%'+'''') ;
if XMEdit.text<>'' then
SQL.Add('and 姓名='+quotedstr(XMEdit.text));
if CheckBox2.Checked then
SQL.Add('and convert(varchar(20),出楼日期,120) like '+''''+FormatDateTime('yyyy-mm-dd',DateTimePicker2.DateTime)+'%'+'''');
open;
end;
这样改就可以了,打扰大家了 ,不好意思!

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧