我用的是数据集组件是:ADOQuery;为了运行其间查找基本资料速度提高,我的ADOQuery在登陆时就打开了,当我的基本资料数据更新时,ADOQuery里没有更新(比如ADOQuery连的是客户资料表,当我增加一个客户时,ADOQuery里的数据不会自动更新),不知ADOQuery怎么才能自动更新?
希望各位GGJJ给个答案!
希望各位GGJJ给个答案!
解决方案 »
- delphi 2010断点不能用
- 推荐http://skyhorse.blogchina.com
- ActiveForm 編譯提示"Cannot debug project unless a host application is defined. use the Run| Parameters...dialog box.
- 深圳公司招聘DELPHI高手
- setcapture的问题
- 我要用delphi编一个网络课件.
- 请问,想做出象Protel(Tango)作图效果的程序,如何下手呢?
- 初学者的苦恼!
- 如何能让程序判断Edit控件的值是预定范围内的值,如果不是就出提示
- 如何实现在一个表单中,当我点击最大化时,我......大家帮我看看,立刻给分的.
- 急急急!!如何在fastreport中预览显示出数据库中的jpg图片字段?????????????????
- 四舍五入的简单问题
ADOQuery.Refresh;
DBGrid.Refresh;
ADOQuery.Active := False;
ADOQuery.Active := True;
open;如果是批处理要 updatebatch
有没有相关的属性啊?
在窗口的OnShow事件里加入:
ADOQuery1.Close;
ADOQuery1.Open;
就会在窗口打开时自动刷新了!
我也遇到过老兄一样的问题,不过后来解决了,我的解决方法是:
在窗口的OnShow事件里加入:
ADOQuery1.Close;
ADOQuery1.Open;
就会在窗口打开时自动刷新了!
---------------------------------------------------------
me:老兄,如果的我ADOQuery1连接的表有十多万条记录,就算建了索引,查询出来也有一段时间啊,用户不可能每次打开窗体时都等啊,就是因为这样我才把它放在数据模块里,在程序刚运行时执行!------------------------------------------------------------------
gobiz(拔剑容易收剑难):
应该在Post后调用ADOQuery1.Requery方法来重新读取数据集的!
------------------------------------------------------------------
me:老兄,每Post后就Requery,这种做法很像也不是很合理啊.
gobiz(拔剑容易收剑难):
应该在Post后调用ADOQuery1.Requery方法来重新读取数据集的!
------------------------------------------------------------------
me:老兄,每Post后就Requery,这种做法很像也不是很合理啊.=================================
有什么不合理的呢?因为不仅仅是一个客户端连接到了数据库,如果别人修改了数据,你如何得到呢?岂不是还要Requery呢?为了保证经常得到最新的记录集,就是要这样的呀!如果你嫌速度慢,其实完全可以采用原生ADO实现,而且加上分页功能,客户端基本感觉不到查询的速度慢的!
很像设CursonLocation为ctKeyset应该会自动刷新数据的.但不知道怎么不行......
ADOQUERY。OPEN执行后 会降低速度
我以前也用 重新写入SQL(select * from talbe_name where )然后执行 现在觉得ADOQuery.Post;
ADOQuery.Refresh;
DBGrid.Refresh;
ADOQuery.Active := True;
最简单,而且占内存又少。
楼在大哥,我用的是SQLServer;里面很像没有分页功能的哦,那是ORACLE的!我设了一下ADOQuery1的LockType和CursonLocation两个属性;也不行;
很像设CursonLocation为ctKeyset应该会自动刷新数据的.但不知道怎么不行......
=========================================================================
无语……难道你不知道ADO本身就集成了分页功能吗?管你什么数据库呢?甚至连Access都可以实现分页,否则ASP就没有生存余地啦!PageSize,PageCount……本来就是ADO的一个特性,不过DELPHI并没有把它封装起来而已,但是我们可以利用ADOQuery.RecordSet.PageSize、ADOQuery.RecordSet.PageCount……等来间接实现,不过这样的用法,针对你的DBGrid是没有用的,你可以使用ListView等来手工写代码显示数据……,这样容易控制,反正我已经好久不用DBGrid啦,局限性太强,而且不容易控制,随时都可能出现错误提示!
我觉得你说的很有道理
为什么一次要查询几百万条记录呢?
如果更新的话,只要更新你修改的那条记录不就行了?建议使用bde,我感觉bde比ado快很多,特别是处理非常多的纪录的时候
ADOQuery.Active := True;
最简单