本人正在D7学习DBEXPRESS,现在用SQLQUERY发现了一个问题。
  sqlcx 为TSQLTUERY
  ss:string;
   dm.sqlcx.SQL.Clear ;
  dm.sqlcx.SQL.add('select max(id) as dd from table1');
  dm.sqlcx.ExecSQL(false);
  ss:=dm.sqlcx.fields[0].AsString;
 当执行到最后一行时出错。list index out of bands(0)
  我换成 ss:=dm.sqlcx.fieldbyname('dd').asstring;
 则错误变成  字段 DD 没有找到,
             why!

解决方案 »

  1.   

    dm.sqlcx.ExecSQL
    改成
    dm.sqlcx.Open;
      

  2.   

    本人正在D7学习DBEXPRESS,现在用SQLQUERY发现了一个问题。
      sqlcx 为TSQLTUERY
      ss:string;
       dm.sqlcx.SQL.Clear ;
      dm.sqlcx.SQL.add('select max(id) as dd from table1');
    showmessage.dm.sqlcx.sql //看一下语句有没有错  
    dm.sqlcx.ExecSQL(false);
      //ss:=dm.sqlcx.fields[0].AsString;
    看一下有没有什么提示
      

  3.   

    不好意思,丢人了,我最后发现,是 dm.sqlcx.execsql(false)错了,因该是用OPEN。
    连这样的错我都会犯,实在是给这行丢人了,看来还是要
                            好好学习 天天向上。
      对回答这问题的朋友说声谢谢!!!!!!!!!!!!!