我用的是D7+ACCESS  XP;用ADO Query想查询一段时间的记录,
SQL为 
 select * from tbl where ftime>#2003-5-1 14:00:35#
  运行时通不过.而去掉时间,只存日期,换成 select * from tbl where ftime>#2003-5-1#
 就可以,
其中数据库中的记录为:
 id  name value         time
 ..      ..            2003-4-23 12:12:22
..     . . .           2003-5-1  15:32:24
..     ..                   ..
记录中有日期和时间.
后来我想换为变量的形式:
  ..
  MySQL:='select * from tbl where ftime>:ADateTime'    
  DM.adoQry.Parameters.ParaByName('ADateTime').value :='#2003-5-1 14:00:35#'
  with dm.adoqry do
  begin
    close;
    sql.clear;
    sql.add(mysql);
    open;                      //出错
   ..
  
...并在DM.adoQry中加入了ADateTime参数变量,可是执行时出错,提示为找不到ADateTime参数变量,我明明DM.adoQry的属性列表Parameters中在定义了,不知怎么回事.兄弟们帮忙看看.

解决方案 »

  1.   

    打错了:其中数据库中的记录为:
     id  name value         ftime
     ..      ..            2003-4-23 12:12:22
    ..     . . .           2003-5-1  15:32:24
    ..     ..                   ..
      

  2.   

    第一个问题,因为你的时间里面有冒号(':'),所以会被当成参数来处理,把TQuery 的ParamCheck 属性设置为False 可以解决问题。
    第二个问题,在你对sql 属性赋值之后再对参数赋值,像下面这样
    sql.add(mysql);
    DM.adoQry.Parameters.ParaByName('ADateTime').value :='#2003-5-1 14:00:35#';