DBGrid1的数据集是一个TADOQuery,我在执行 
TmpADOConn.execute('insert into temp values(''1'',''2'',''3'''); 
后再点击某个按钮执行下面的语句进行表格数据的刷新,但是并不能显示出新增数据,而要重复点击按钮几次,才会将新的数据在表格中显示出来。   ADOQuery1.Close; 
  ADOQuery1.SQL.Clear; 
  ADOQuery1.SQL.Text:='Select * from khk'; 
  ADOQuery1.Open; 我在网上看到只要将ADOQuery先close,再open就可以刷新数据呀,但为何我这样不行? 
而如果我将数据连接TmpADOConn先设置conntected=false,再设置为true,就可以了,但这样速度慢了。 
还请各位大侠指点,谢谢! 

解决方案 »

  1.   

    我一般是增加成功之后 adoquery1.active:=false;
                          adoquery1.active:=true; 这样的话就刷新了
      

  2.   

    ADOQuery1.Close; 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.Add('Select * from khk'); 
    ADOQuery1.Open;
      

  3.   

    to lhyang761030(云儿) , hugoon(ギギ孤独code客ギギ)二位大侠:
     二位所讲的方法我试了,没有用to andy_1027(昊天):
    TADOConnection没有Post这个方法呀?我现在用的方法是先用TmpADOConn.Connection:=false,将连接断开,再TmpADOConn.Conneciton:=true,再连上数据库,这样就可以将新增的数据显示出来,
    但这样方法就是速度慢了。
      

  4.   

    恩建议用ADOTABLE,ADODATASET,ADOCOMMAND.来新增数据
      

  5.   

    ADOQuery1.Requery;不可能查看不到新数据,除非根本就没有存进去。建议打开源库看看
      

  6.   

    我在使用Requery时,不是报数据集被关闭,就是报“对象关闭时,不允许操作”这二个错误。
    Requery是在什么时候使用?
    我看帮助上讲,Requery的结果和close后,再open是一样的。