我用
adoquery.sql.text :='select top 1 * from Expenditure';
adoquery.Insert;
然后用数据控件加上内容 
adoquery.pos;
adoquery1.close; 
adoquery1.open;
(adoquery1是将Expenditure'表中的字段显示到grid中)
剧然不显示刚刚添加的记录,
要在过1两秒钟在执行一下
adoquery1.close; 
adoquery1.open;才会显示,
难到在POS后,adoquery写到数据库还要一点时间吗.

解决方案 »

  1.   

    是这样子的
    提交数据后你再
    adoquery1.close; 
    adoquery1.open;
    这样就OK了
    我以前也是这样子解决的 
      

  2.   

    post 後為什麼還要close open呢
      

  3.   

    不是这样的,有两个ADO控件,adoquery用来添加记录的。adoquery1用来显示表中的数据的,就是在adoquery.pos后对adoqeury1 CLOSE OPEN后GRID里不显示我刚刚添加的记录,如果再对adoquery1进行 close open 就显示刚刚的记录了.
      

  4.   

    你adoquery.post后,就已经存入数据库了,但你的adoquery1并没有去读取最新的数据,明白了吗?
      

  5.   

    你adoquery.post后,就已经存入数据库了,但你的adoquery1并没有去读取最新的数据,明白了吗?我就是不明白为什么没有读到最新的数据,用refresh没有用
      

  6.   

    我只见同事碰到过,INSERT完数据后立刻SELECT回那条数据,会SELECT不出来,他也说过一会再SELECT就可以了。
      

  7.   

    我只见同事碰到过,INSERT完数据后立刻SELECT回那条数据,会SELECT不出来,他也说过一会再SELECT就可以了。我的也是这问题,如果是过一会在SELECT的话,那不是要手动CLOSE OPEN难到没有办法解产愉吗。
      

  8.   

    你是把插入新数据和close及open写在一个事件里了吧?写成两个动作应该就可以了
      

  9.   

    其实最主要的问题是,“过一会就可以了”,例如说在重新SELECT之间加个Sleep(3000)。所以我觉得大家说的没提交数据的理由不成立。
      

  10.   

    同意Harry兄,不知是否是ADOQUERY的问题!
      

  11.   

    我猜测了下原因,哪位熟悉原生ADO的请出来指正一下:ADOQUERY.POST后,它里面封装的ADO对象异步地向数据库进行写操作,如果我们立刻SELECT的话,则赶在了数据真正写入前,因此不起效果。