# Re: data & adodc 显示速度

Posted by CCC on April 18, 1999 at 15:44:19:

In Reply to: data & adodc 显示速度 posted by Spencer Yang on April 17, 1999 at 11:32:17:

>本人有一资料库有23万笔资料(39MB)，利用data结合dbgrid, 在显示速度与一般小型资料(1万以下)无异，而adodc与datagrid的组合，显示速度呈龟速，不知各位高手，有何建议方案，可能组合方案胪列如下:
>
>1)仍使用data,dbgrid;
>2)使用adodc,datagrid,修正其中条件;
>3)是否转列sql 7.0, 再搭配adodc,datagrid;
>4)其他
>请各位高手不吝赐教, 谢谢！

1)若想使用adodc,datagrid而又不想改变错误的设计观念则解决方法如下：
（假设adodc 的名称为adodc1）则设定 Adodc1.CursorLocation = adUseServer ，
但将导致某些功能失效（资料笔数、cursor 位置），这不是很正确的作法（原因说
来话长），不过还是可以的。
datagrid 在输入中文时某些按键会有问题，需做很多特殊处理。

2)改变原有的错误设计观念，那可不是三言两语可说的完；市面上可见的书籍内容
所述亦未必即是正确的，举例来说：在王国荣的VB 5.0资料库程式设计书内谈到，
资料查询最好最快的指令是 SEEK 而不是FINDXXXX ，事实上快是最快没错，但却
不是正确选择，两个指令速度相差十万八千里，但是SEEK却是个不该用的指令（
不是绝对不能使用），但是查询速度慢的问题如何解决呢？善用后端资料库引擎
的 VIEW （Access 的查询表格）即可解决，程式中不可能需要使用到 SEEK 这个
指令的，当然这样做会让很多程式设计者难以接受且很受不了。

3)用个浅一点的比喻来说，假如把 VB 当是一把枪，正确的用法是把子弹装上，
瞄准目标扣上扳机，即可让对手一枪毙命，而不是拿枪去砸对方（当然也是可以这
样用的），让对手毙命的是那颗子弹，而动力则是火药，而枪不过是引爆火药并
决定子弹的去向。
把子弹射向敌方而不是把枪掷向敌方！

4)有人习惯了用刀，当改用枪时，却总觉得枪既不锋利又不够重怎能杀敌，因为他
不会装子弹也不会扣扳机更不会瞄准，当然还是觉得他的刀好用了。
使用枪当武器却不装上子弹，当然会让人误会为玩具，甚至觉得丢脸。
在一些讨论区见到有人觉得用 VB 来写程式觉得丢脸，的确拿枪去杀一个赤手空拳
的人的确赢得有点不好意思。

5)很多人还是习惯用枪砸人而不是装上子弹扣上扳机，即使是哪些所谓的大师！唉！

Follow Ups:

- 我赞成您一半的意见 cww 19:38:21 4/18/99 (8)
  - Re: 我赞成您一半的意见 CCC 01:00:26 4/19/99 (7)
    - 好啊! cww 15:53:38 4/19/99 (1)
      - Re: 好啊! CCC 17:39:27 4/20/99 (0)
    - Re: 我赞成您一半的意见 nothing 08:51:15 4/19/99 (3)
      - Re: 我赞成您一半的意见 CCC 17:41:01 4/20/99 (2)
        - 谢谢你!!我的e_mail 是 nothing_wang@smtp.qst.com.tw (无内文) nothing 09:20:59 4/22/99 (0)
        - 谢谢你我的e nothing 09:16:28 4/22/99 (0)
    - Re: 感谢 CCC及 CWW高手指导！ Spencer Yang 03:27:43 4/19/99 (0)