var 
sql:string;
begin
  sql:='select a,b,c,a*b+b*c aa from abc where ....';
....
end
delphi中的sql语句不能有乘法吗?应该怎样写呢?

解决方案 »

  1.   

    我去掉  a*b+b*c就好了.用的是oracle
      

  2.   

    'select a,b,c,a*b+b*c aa from abc where ....
      

  3.   

    错误信息
    'access violation at address 010F0167 in module 'dbexpora.dll'.write of address 00000000'
      

  4.   

    不知道你的乘法的结果中有没有暴大的,我怀疑是不是有可能超过数据上限,当然,不是oracle的上限,而是
    dbexpora.dll中关于浮点(或整形)的上限,可否试一下这样'select a,b,c,to_char(a*b+b*c) aa from abc where ....'
      

  5.   

    a,b,c是否为整型类型数据?aa是a*b+b*c所得出来的列吧
    sql:='select a,b,c,a*b+b*c  aa from abc where ....';
      

  6.   

    a是char,但是奇怪为什么在pl/sql下能通过呢.
      

  7.   

    a,c都是char
     sql:='select a,b,c,to_number(a)*b+b*to_number(c) aa from abc where ....'; 
    这样还是报错啊.
      

  8.   

    楼主分开试一下,看看这样有没有错,
    sql:='select a,b,c,a*b aa, from abc where ....';
    sql:='select a,b,c,b*c  bb from abc where ....';
    sql:='select a,b,c,a*b aa, b*c  bb from abc where ....';
      

  9.   

    sql没错!错的是你没有把对象实例化或者你访问了空对象。
      

  10.   

    能在PL/SQL中执行的语句未必都能在程序中执行,建议楼主换个别的SQL语句实现。
      

  11.   

    代码就是这样,我知道原因了.就是a里面有空还有汉字,空好处理,就是有汉字怎么处理,有汉字就处理为0,请阿三指导下.
    空可以这样处理 nvl(a,'0')
      

  12.   


    汉字你也乘法,有想象力,PFPF
      

  13.   

    在SQLPLUS中调试。PL/SQL中语法,有好多地方都自行翻译过了。
    PS:我的印象中ORACLE中字段别名的话,要用AS的吧?
      

  14.   

    简化成 select a,b,c,(a+c)*b aa from abc where... 看看
      

  15.   

    sql:='select a,b,c,a*b+b*c AS aa from abc where ....';