Ado 访问 Oracle817  Delphi7.0 SP1
var 
   today:String;
Begin
   today:=FormatDateTime('yyyymmdd',Now);
With ADQury Do
Begin
  close;
  sql.Clear;
  sql.Add('select a.ZoneNo,a.ZoneNm,Sum(b.Amount) from custno_inf a,bank_dz_info b where a.custno=b.zd_id and b.flag=''Y'' and b.tdate=:s1 group by a.zoneno,a.zonenm,b.zd_id');
  Parameters[0].value:=today;
Try
  open; //程序执行到这里时报错
except
  Messagedlg('Operation Failer!',mtError,[mbok],0);
End;
End;
End;但是我将上面的sql语句放在sqlplus里却能成功执行(将参数:s1替换成常量如 '20040502')。
请大家帮帮我~~谢谢~~!!

解决方案 »

  1.   

    except on e:exception do
      Messagedlg(e.message,mtError,[mbok],0);看看什么错误
      

  2.   

    错误信息:
      ORA-00979  "不是 GROUP BY 表达式"
      

  3.   

    sql.Add('select a.ZoneNo,a.ZoneNm,Sum(b.Amount) from custno_inf a,bank_dz_info b where a.custno=b.zd_id and b.flag=''Y'' and b.tdate='''+today+''' group by a.zoneno,a.zonenm,b.zd_id');
     // Parameters[0].value:=today;注视掉
      

  4.   

    嗯。我去Test一下,OK了就结贴~~
      

  5.   

    sql.Add('select a.ZoneNo,a.ZoneNm,Sum(b.Amount) from custno_inf a,bank_dz_info b where a.custno=b.zd_id and b.flag=''Y'' and b.tdate='+quotedstr(today)+' group by a.zoneno,a.zonenm,b.zd_id');
      //Parameters[0].value:=today; 用參數有時會產生錯誤,我也碰到過,很是郁悶,
    但是不用參數sql 語句看起來很亂...不清晰