请教一个oracle中带group by和时间参数的sql查询问题 (50分)

  • 主题发起人 主题发起人 铁锈
  • 开始时间 开始时间

铁锈

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi编程中发现的
sql语句中如果出现了group by句子,where中如果出现了带日期的条件并且该日期是通过
参数传递的,oracle执行时就会出错
具体来说是这样
adoquery1.sql.text:='select "编号",sum("输入")'+
' where "销售日期" between :s1 and :s2 '
' group by "编号" ';
adoquery1.parament.paramentbyname('s1').value:=datetimepicker1.datetime;
adoquery1.parament.paramemtbyneme('s2').value:=datetimepicker2.datetime;

类似这样的sql语句执行都会出现相同的报错"not a group by expresstion"
不知道你大家没有碰到过

谢谢
 
",sun("输入")'+


你自己看看写的啥
 
帖子上面是笔误,程序里面没有错。
 
我发现不光是时间参数,只要是有group by子句的,where子句中有参数传递的就会
报这样的错
 
先试试将语句放到数据库集成环境中去测试,没问题的话,再分析ADO。
oracle中你用中文作为字段名?

你的笔误太严重啦!
 
BTW,你能保证你的应用程序所使用的客户端采用的日期格式和数据库服务器中相同?
 
是的,因为我们试过不带group by的参数传递,是正确的。好像是驱动的问题阿,有没有解决的办法
 
没有好办法啦!
我就是觉得ado在不同的机器上、不同的版本上表现的很难控制,所以现在我尽量不使用。
如同odbc一样,oracle好象也有自已的ado,你是否可以换一下来试试?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部