我想在新增纪录时自动填入ID字段的值(string,001,002,...),操作是从数据库中取出最大ID,加一后赋给新纪录的ID
ADOQuery1.close;
ADOQuery1.clear;
ADOQuery1.sql.add('select max(ID) from *** into :maxid');
ADOQuery1.execsql;
我想问这个输出参数maxid应该如何定义,得到的值应该怎么取出来用?
初学中,请帮帮我。谢谢。

解决方案 »

  1.   

    1.select max(id) as Maxid from ***  
    2.s:=ADOQuery1.FieldbyName('maxid').Asinteger
      

  2.   

    var maxid :String;
    ADOQuery1.close;
    ADOQuery1.clear;
    ADOQuery1.sql.add('select max(ID) from *** ');
    ADOQuery1.execsql;
    maxid := ADOQuery1.Fields[0].AsString;
      

  3.   

    var maxid:stirng;
    //...
    begin
    //...
    ADOQuery1.close;
    ADOQuery1.clear;
    ADOQuery1.sql.add('select max(ID) as maxid from *** );
    ADOQuery1.open;
    maxid:= ADOQuery1.fieldbyname('maxid').asstring;
    //...OK
      

  4.   

    就算是有多条记录那个最大ID都是一样的,所以只需要计算一个就行了,如果要查询所有记录就用循环实现就行var
     maxid as integer;
    //....
    ADOQuery1.close;
    ADOQuery1.clear;
    ADOQuery1.sql.add('select max(ID) as maxid from *** );
    ADOQuery1.open;
    maxid:= ADOQuery1.fieldbyname('maxid').Asinteger+1;