多级ADO联动的问题

路过路人乙 2016-03-24 08:49:59
我有个3级联动的表.
T1:一个原始数据表.
T2:一个和原始数据关联的表
T3:是T2表的明细表.

界面设计上有3个grid.分别对应T1,T2,T3..均有对应的ADO控件.其中T1对应的grid是数据感知的.另外2个不是..

我在T1表的grid的rowchange事件中查询该原始数据对应的关联表以及关联表的明细数据.形成一个联动关系.(由于客户要求.不能在cellclick事件里做这个事情.那样使用键盘的上下键无法起到联动的作用.)

这个时候如果滚轮很快就会导致界面卡顿..这是由于程序在不停的访问读取T2 T3表导致的..
我已经将T2 T3表里关联的那个字段设置成了索引..

但是T1表数据多的时候.一旦快速滑动T1表就会导致页面卡顿..这有什么比较好的办法解决吗?
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
勉励前行 2016-03-25
  • 打赏
  • 举报
回复
T1:一个原始数据表. : 滚动时,不立即更新其他表, bool UpdateT2T3 ; T1::AfterScroll(...) { UpdateT2T3 = true ; } 用一个简单的Timer控件,设定时间为20ms左右 Time1::OnTimer() { if(UpdateT2T3 ) { //在这里更新 表T2 T3 } UpdateT2T3 = false ; } //这样做简单些吧、
路过路人乙 2016-03-25
  • 打赏
  • 举报
回复
shi
引用 1 楼 PPower 的回复:
T1:一个原始数据表. : 滚动时,不立即更新其他表, bool UpdateT2T3 ; T1::AfterScroll(...) { UpdateT2T3 = true ; } 用一个简单的Timer控件,设定时间为20ms左右 Time1::OnTimer() { if(UpdateT2T3 ) { //在这里更新 表T2 T3 } UpdateT2T3 = false ; } //这样做简单些吧、
试了试AfterScroll..在滑块滚动的时候..T2也是联动更新的..不过T3表没有联动..这样数据量小了百倍..在可接受范围内了..QQQ

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧