高手请进,delphi操作Access数据库的奇怪问题?(50分)

  • 主题发起人 主题发起人 guofengdelphi
  • 开始时间 开始时间
G

guofengdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
最近用delphi开了一个小软件,数据库用Access。<br>我用Ado方式连接数据库,在一个窗口中,用dbgrid显示通过ADOQuery查询出的数据,<br>问题:<br>&nbsp; 当我新增加一条记录,通过ADOQuery执行插入数据库操作,数据保存进数据库,同时dbgrid执行刷新了操作。但是这是dbgrid列表控件不显示刚才新增的记录,<br>但是当你把本窗口关闭后再打开,刚才保存进数据库的记录有显示了,请问怎么回事?
 
试着关闭数据集,重新打开看看:<br>with dbgrid1.DataSource.DataSet do<br>begin<br>&nbsp; Close;<br>&nbsp; Open;<br>end;<br>如果不行那么安装以下Delphi相关补丁试试,Delphi bug太多,没办法。
 
呵呵,关闭ADOQuery后,再打开就行了,刷新DBGRID没用,刷新Dataset才行
 
to man8888<br>呵呵..你的话很有意思..
 
我是把ADOQuery关闭了,又重新打开,但就是不行,不知为什么?
 
刷新下dbgrid的记录嘛。<br>dbgrid.DataSource.DataSet.Refresh;
 
dataset.close;<br>dataset.open;<br>刷新一下
 
肯定是没有commit拉.
 
还是楼上兄弟的牛
 
是不是需要这样:<br>AdoQuery.close;<br>AdoQuery.open;<br>dbgrid.DataSource.DataSet.Refresh;<br><br>这样才能刷新到数据。?
 
adoquery1.active:=false;<br>adoquery1.active:=true;
 
楼上的兄弟:<br>adoquery1.active:=false;<br>adoquery1.active:=true;<br>和下面的代码不是一样的吗?<br>AdoQuery.close;<br>AdoQuery.open;<br>我现在就是这样写的,可是程序有时不显示最近添加的数据.
 
数据集.Requery就行。<br>Requery等于Close再Open,<br>Refresh是刷新当前的记录集,不重新去数据库刷新
 
adoquery1.requery();<br>等于close,open,将速度比它们快
 
还有没有更好的答案,没有就结贴了。
 
多人接受答案了。
 
问题还没有解决,<br>在delphi7中用ado操作access库,为什么post之后,dbgrid不能显示新加的记录,即便使用了adodataset的requery方法也没用,<br>3、adoconnection设异步,不设异步,也不行。 &nbsp; <br>&nbsp; 4.我现在是把ADOTable改为了ADODataset了 &nbsp; ,也不行 &nbsp; <br>&nbsp; 5.在Sever-side &nbsp; Cursor使用Dynamic &nbsp; Cursor &nbsp; &nbsp; 同样不行 <br>6、dbGrid.refresh也不行。<br>在网上找了好多帖子,大家都遇到过同样的问题,都没有最终的解决办法,哪位高手解决一下,解决好了,继续送分。。。。
 
怎么没人回答了呢?
 
adoquery1.requery()
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
741
SUNSTONE的Delphi笔记
S
S
回复
0
查看
750
SUNSTONE的Delphi笔记
S
后退
顶部