一个通过AdoQuery在Access2000中使用SQl语句出错的问题(80分)

  • 主题发起人 滑翔机
  • 开始时间

滑翔机

Unregistered / Unconfirmed
GUEST, unregistred user!
我写的一条SQL语句在Access2000中的查询可以正常执行,但是将他赋值给一个连接到
Access2000的TADOQuery执行就报错。
SQl语句是:select 合同名称, 合同金额, 到款金额, 签订时间,名称 as 合同状态,
公司名称 from 合同,公司,基础资料表 where 合同.签订时间 < #10-06-2002 0:00:00#
and 公司.公司编号=合同.公司编号 and 基础资料表.编号=合同.合同状态
order by 合同.签订时间 Desc

错误是:Parameter 对象被不正确地定义。提供了不一致或不完整地信息。
这是什么原因?
 
select 合同名称, 合同金额, 到款金额, 签订时间,名称 as 合同状态,
公司名称 from 合同,公司,基础资料表 where 合同.签订时间 < #10-06-2002 0:00:00#
and 公司.公司编号=合同.公司编号 and 基础资料表.编号=合同.合同状态
order by 合同.签订时间 Desc
前面几个字段 “合同名称, 合同金额, 到款金额, 签订时间,名称 as 合同状态,
公司名称”SQL不知道从那里取得应该把表名也加上例如 select 合同.合同,合同.公司..
 
SQL语句没错的,把DELPHI中运行SQL语句的那部份代码贴出来看看,应该是那部份参数
传入的数据格式错了。
 
Sql 语句就是在调试状态下从Delphi中拷贝出来的,
拷贝到Access2000中,执行正确。
 
where 合同.签订时间 < #10-06-2002 0:00:00#
改成
where 合同.签订时间 < #10-06-2002#

where 合同.签订时间 < #2002-10-06#
 
我按照QuickSilver的写法去掉了时间,程序可以运行了,请告知原因
 
因为正确的日期时间表示应为
where 合同.签订时间 < #2002-10-06 00::00::00#

 
QuickSilver正解.
":"是转义符,后面需要一个参数名.
 
顶部