DBGridEh footer 赋值时间好慢,,求解决

sharebei 2011-06-22 06:01:48
DBGridEh.Columns[j].Footers[0].Value := val';

界面上控件较多,,,上面这行代码共被执行 七,八 千次赋值太慢了.....整个时间四十多秒呢,其中 val 的读取是从七八千行的INI文件中读取出来的,,经过计算读取时间也只就十几秒,怎么全程下来就四十多秒呢.

哪位教下如何提高速度,,,,
...全文
163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidutong 2011-10-13
  • 打赏
  • 举报
回复
hao a
sharebei 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 babydog01 的回复:]

还是晕,8000列的表,看完了头肯定晕..................
[/Quote]

是所有 DBGridEh 的列加在一起 ,全在一个程序界面上的.
babydog01 2011-06-27
  • 打赏
  • 举报
回复
还是晕,8000列的表,看完了头肯定晕..................
sharebei 2011-06-27
  • 打赏
  • 举报
回复
看来只能放弃在 DBGridEh.Columns[j].Footers[0].Value 中保存数值了.
只是之前的代码是放在 DBGridEh.Columns[j].Footers[0].Value 里的 不想改了,,
为了效率 ,,还是花时间吧,
andylist 2011-06-27
  • 打赏
  • 举报
回复
好强大的INI
babydog01 2011-06-24
  • 打赏
  • 举报
回复
1、建议还是放在数据表中,做好索引。利用循环来做,这样做的好处是减少了查询的环节。
2、在做 DBGridEh.Columns[j].Footers[0].Value := val'; 的过程中,两个数据源都需要 ADO.DisableControl;结束时要ADO.EnableControl;

Ado1.disableControl;//ini数据
ADO2.disableControl;//Dbgrideh数据
Ado1.first;
while not ado1.eof do begin
DBGridEh.Columns[ado1.recno()].Footers[0].Value := ado1.fieldbyname('val').asstrinng;
ado1.next;
end;
ADO2.EnableControl;
babydog01 2011-06-23
  • 打赏
  • 举报
回复
七,八 千次?你的表有7至8千列?不会吧!如果有8千行的INI,还不如放进数据表中!
sharebei 2011-06-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 babydog01 的回复:]

七,八 千次?你的表有7至8千列?不会吧!如果有8千行的INI,还不如放进数据表中!
[/Quote]
嗯,确实有这么多列,,,,N多的DBGridEh控件

2,497

社区成员

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

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