在一个面板上绘制许多条曲线,数据来源是一个access数据库。需要采用adoquery查询获得数据,进行绘图。现在采用的是dbchart的fastlineseries,直接连接adoquery的字段上,自动生成曲线。但是当曲线很多,查询频繁的时候,绘图速度很慢。想请教一下大家,应该怎么改进呢?

解决方案 »

  1.   

    有什么好的建议吗? 生成个大的sql语句,一次查询先怎么样? 会有改观吗?
      

  2.   

    试试不用dbchart,直接用chart另外不要 select *
    最好 selcet 需要的字段
      

  3.   

    使用记录,
    在一个查询完数据库的时候,把曲线的数据保存在一个大的记录里,然后通过记录的数据进行绘图。或者使用XML语句也比较快。查询出数据后,保存成XML,然后通过读取XML文件进行画图。
      

  4.   

    或者开辟一个内存DC,一面检测数据,一面就在内存DC中画好所有曲线,
    全部结束后,再从内存整个地移到屏幕上。
      

  5.   

    darkliu(钢铁工人甲) 说得是。的确不应该select *。postren(小虫)说得也是,我查了下,查询的时间的确占了多数,画图倒是很快,看起来。zhushudo(晴天柱)的方法听起来不错,可是我一直比较迷茫——使用query的sql查询,可以将第一次查询得出的结果保存到某处(不是文件),然后对其进行进一步查询吗?谢谢大家!
      

  6.   

    zzwu(未名) 我现在用的是dbchart控件,如果绘图时间的瓶颈是在数据库查询,我就懒得自己重写绘图了…… 嘿嘿:)
      

  7.   

    使用query的sql查询,可以将第一次查询得出的结果保存到某处(不是文件),然后对其进行进一步查询吗?
      

  8.   

    使用query的sql查询,可以将第一次查询得出的结果保存到某处(不是文件),然后对其进行进一步查询吗?用嵌套查询就可以