一个form上放一个query1:tadoquery,一个dbgrid1,和一个增加行按钮button1,dbgrid1绑定到query1,与其对应的数据库表里是没有记录的,在formshow事件里,使query1.append增加一行,以后在button1的click事件里调用query1.append,可是当dbgrid1已经显示增加到5行的时候,当前光标落在最后一行,我取query1.recno还是-1,实际值应该是5,只有光标在行间移动一次以后,query1.recno的取值才正确,请问这个问题怎么能解决?我实际上就是想取出当前行的行号,为什么非要在行间变化一次才能取出正确的值呢?还有别的办法可以取行号吗?

解决方案 »

  1.   

    当你正在执行query1.append 而没有 post 时取的recno 当然就是-1
      

  2.   

    当你正在执行query1.append 而没有 post 时取的recno 当然就是-1
      

  3.   

    当你正在执行query1.append 而没有 post 时取的recno 当然就是-1
    光标移动表示提交所以就有值了。
      

  4.   

    可是我这个query里的数据只是临时用的,并不保存到数据库里去的,不能用post啊,那不就写到数据库里了吗?我专门是query.locktype=ltBatchOptimistic,在光标移动的时候不写到数据库里,可是光标在行间移动时recno就正确了呀,请问这个问题怎么解决?
      

  5.   

    query.locktype=ltBatchOptimistic
    只有进行updatebatch才写到数据库中