两个ADOQUERY 通过 Microsoft.Jet.OLEDB.4.0 连接 access 数据库 1. 先用第一个 ADOQUERY 查询出一个表的数据,用DBGrid显示; 2. 再用另外一个 ADOQUERY 更新(删除、添加)这个表的数据,执行之后紧接着 刷新第一个 ADOQUERY ,显示的数据却没有变化。 用 ADOQUERY.Close 和 ADOQUERY.Open 、ADOQUERY.Active:= false 和 ADOQUERY.Active:=true 、ADOQUERY.Refresh 、DBGrid.Refresh 这些方法,都不能刷新DBGrid中的值。 硬是要等到1-2秒之后再刷新才有效。 这个情况在Sql Server 和 Oracle 中都没有碰到。 是ACCESS数据更新太慢?是Microsoft.Jet.OLEDB.4.0更新太慢? 有没有碰到这个问题的朋友,告诉我一下解决的办法,不胜感谢!
才能够提交到数据库呀
这种操作,我用Microsoft OLE DB Provider for SQL Server/Oracle 都没出过问题,简单的关闭再打开第一个ADOQuery ,都会刷新了,偏偏这次是 ACCESS 和 Microsoft.Jet.OLEDB.4.0。
有没有换个新的ADOQUERY试过?
求助的帖子已经更换为
http://community.csdn.net/Expert/TopicView1.asp?id=3189782 说的更详细些。
以删除为例
id:=adoquery1.Fields[0].Value;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('delete from mytest where 编号=:id');
adoquery2.Parameters.ParamByName('id').Value:=id;
adoquery2.ExecSQL;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from mytest');
adoquery1.Open;
经测试,能够及时刷新
删除能够了,那么其他操作也可以类似
楼主如果要私下讨论,也可以
我的QQ是88971159,随时可以联系我
上面还要几个控件ADOconnection1,ADOdatasource1,ADOquery1,adoquery2
前面3个要绑定一下,adoquery2与adoconnection1绑定就可以了