比如目前表中纪录
id name
...
99 张三
100 李四
----------------
id是自动加1的字段,
我现在加入执行语句:
adoquery1.append;
(在界面输入数据)
adoquery1.post;
temp:=adoquery1.fieldbyname(id).asinteger;为什么temp的结果显示的是100而不是101,
如果才能取得我POST之后的当前纪录的ID值,也就是101?

解决方案 »

  1.   

    adoquery1.post; 
    adoquery1.Last;
    temp:=adoquery1.fieldbyname(id).asinteger; 
      

  2.   

    加個adoquery1.last;在post后面試試
      

  3.   

    方法1: 
    adoquery1.post; 
    adoquery1.Last;
    temp:=adoquery1.fieldbyname(id).asinteger; 
    方法2:
    adoquery1.post; 
    temp:=adoquery1.fieldbyname(id).asinteger+1; 
      

  4.   

    我刚才试了一下,加上adoquery1.Last;好像还是没有用,显示当前纪录还是上一条,并不是当前新增纪录的ID,
    各位大哥可以试一下看.
      

  5.   

    adoquery1.post; 
    adoquery1.CLOSE;
    adoquery1.OPEN;
    adoquery1.Last;
    temp:=adoquery1.fieldbyname(id).asinteger; 
      

  6.   


    也可以这样写
    adoquery1.post;
    adoquery1.Requery;
    adoquery1.Last;
    temp:=adoquery1.fieldbyname(id).asinteger;
      

  7.   

    adoquery1.CLOSE; 
    adoquery1.OPEN;