用 TClientDataSet 的速度问题

searoom 2007-02-07 08:21:44
给 TClientDataSet 赋值,我是通过 TClientDaraSet.Data 来进行的
但是如果数据量超过 几万条的话,速度会很慢,比直接用 adoQuery.open 慢好几倍的时间。

请教各位兄弟姐妹的解决办法了
...全文
346 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
searoom 2008-03-20
  • 打赏
  • 举报
回复
是啊,ClientDataSet.Data 进行赋值时,其实就是一条条插入的,
而 AdoDataSet 好象是利用原生 ado 的 _Recordset 来赋值的。

确实没有可比性。
jianke5555 2007-02-10
  • 打赏
  • 举报
回复
clientdataset 和adoquery怎么能比,哈...
飞天揽月 2007-02-07
  • 打赏
  • 举报
回复
呵呵
hongqi162 2007-02-07
  • 打赏
  • 举报
回复
>>我只使用 TDBGrid 这个DBComponent,这个对速度的影响不会大吧?


你看看吧,数据量小的时候看不出来,大的时候就很明显
halfdream 2007-02-07
  • 打赏
  • 举报
回复
看来正是TDBGrid显示大大影响了速度.

searoom 2007-02-07
  • 打赏
  • 举报
回复
我只使用 TDBGrid 这个DBComponent,这个对速度的影响不会大吧?
hongqi162 2007-02-07
  • 打赏
  • 举报
回复
大多DBComponet都会立即响应ClientDataSet的变化。如果你是向ClientDataSet中插入很多数据时候,DBComponent就要响应几次,而且响应过程根据不同的控件,速度,过程数量都不一样。这样就影响了程序的执行效率
hongqi162 2007-02-07
  • 打赏
  • 举报
回复
ClientDataSet.DisableControls/ClientDataSet.EnableControls

看看速度会不会有提升
hongqi162 2007-02-07
  • 打赏
  • 举报
回复
不能将clientdataset 和adoquery进行比较 有利有弊的
hongqi162 2007-02-07
  • 打赏
  • 举报
回复
ClientDataSet是将数据缓存到本地,adoquery呢?
searoom 2007-02-07
  • 打赏
  • 举报
回复
但是我直接用 adoQuery.open 速度会快些
同样没有 DisableControls 的

2,497

社区成员

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

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