Delphi查询Access日期/时间字段报错的自我总结

在使用Delphi连接Access数据库时,遇到一个特定的查询问题:当SQL语句包含时间部分如#2013/10/29 9:30:0#时会出错,但去掉时间部分则正常。经过排查,不是SQL语句或Access字段设置问题,而是Delphi中":"字符引发的参数解析错误。解决方案是设置TADOQuery的ParamCheck属性为False,禁用参数检查,从而避免系统错误。
摘要由CSDN通过智能技术生成

现象描述  

最近学习Delphi,在学习连接Access数据库的时候发现有个问题:通过使用的是

ADOConnection+DataSource+ADOQuery 方式连接数据库
连接。执行查询语句中如果没有时间类型就没有问题,如果包含时间在里面就有问题.代码如下:
SqlStatement := Format('SELECT distinct Time FROM [Memo] WHERE datediff(''d'',Time,#%s#)=0 And Time >#10/29/2013 9:30#',[SysData]);//Delphi查询Access日期字段是这样的。
  SqlAdd := Format(' And Time >#%s#',[SysTime]);
  try
    MADOQuery.Close;
    MADOQuery.SQL.Clear;
    MADOQuery.SQL.Add(SqlStatement);
    MADOQuery.SQL.Add(SqlAdd);
    MADOQuery.Open;

    if MADOQuery.RecordCount >0 then
      begin.....{执行一些操作}end;

也就是:执行

Select Distinc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值