用adoquery连接oracle数据库是,表名为YKSQJB,里面有一字段为YWBH(业务编号),数据类型为varchar,在orlacle的sql plus 中执行select max(ywbh) as ywbh from yksqjb时,可以得到最大值,但是在delphi中,语句为:
adoquery1.Close;
adoquery1.SQL.Clear;
ADOQuery1.SQL.Add('Select Max(cdm) From YKSQJB');
ADOquery1.Open;
str := AdoQuery1.Fields[0].AsString ;
却得不到数据.

解决方案 »

  1.   

    ADOQuery1.SQL.Add('Select Max(cdm) maxCdm From YKSQJB');换成这个看看。如果还是不行,那么把这个
    str := AdoQuery1.Fields[0].AsString ;
    换成
    str := AdoQuery1.Fieldbyname('maxcdm').asstring;
      

  2.   

    ADOquery1.Open;改为ADOquery1.execsql;
      

  3.   

    max(ywbh)
    Max(cdm)
    两个字段不同,得到的结果当然不同了。
    嘿嘿
      

  4.   

    什么叫得不到数据?有错误信息么?
    可能是你的cdm字段的问题,类型或者max为空
    ps,就应该用open而不是execsql
      

  5.   

    //有cdm字段吗?adoquery1.Close;
    adoquery1.SQL.Clear;
    ADOQuery1.SQL.Add('select max(ywbh) as ywbh from yksqjb');
    ADOquery1.Open;
    str := AdoQuery1.Fields[0].AsString; //or AdoQuery1.FieldByName('ywbh').AsString;
      

  6.   

    完全同意楼上的说法,你很有可能cdm这个字段出问题了,如果改成楼上的写法肯定没问题的,这个是标准sql语句,不会有问题的,还有必须使用open