我在做一个的数据库用ttable 通过ODBC连接Sql server 7.0,DBGRID显示表,我发现操作表中一列速度很慢,有时鼠标会出现“sql"状,怎么样才能使提速??

解决方案 »

  1.   

    第一:不要通过ODBC来连接任何中大型数据库。应该采用ADO,ADO不是最快的(比ODBC快),但微软一定会将它变成最快的,BORLAND的下一个版本或补丁也将更密切地搞好ADO的速度问题。
    第二:使用DBGRID尢其是使用TTABLE来连接,一定是最慢的方式。TTABLE采用"Select * from TABLE_NAME"来获得数据,并将其缓冲到本机上,这使网络阻塞加大,并且后台数据库不能作优化(特殊情况除外,比始这是一个视图).
    第三:作数据库软件最好不要使用任何数据库的可视化组件,这是高手们的一致经验。使用DBGRID时是不是在这一行结束后都要先做这:保存当前行、禁止ttable的disabcontrol、POST、close/open,移对当前行的下一行,判断是否最后一笔纪录,是则向WINDOWS发消息,使DBGRID按当前字段添加一行(这又涉及到很多问题),否就将记录下移,所有数据控件重新获得新数据。有时很快,有时就很慢,如果在POST时后台正忙,就会出现SQL 状的光标。这表示正在使用SQL 语句向后台写并等候后台回应。也说明DELPHI的数据控件在进行数据集操作时使用的SQL语句。
    第四、不管我的回答对不对,你都要加分。:).加不加由你啦...
      

  2.   

    1:请使用TQuery或TADOQuery组件
    2:如有可能请使用存储过程和触发器来实现你的功能速度会更快。
      

  3.   

    很奇怪你为什么要用odbc那破东西,bde和ado都是很好的选择啊!速度都快多了。
      

  4.   

    尽量使用TQuery和TADOQuery组件,应为table每次都从数据库上把表单全部调到本地
    运行,而TQuery和TADOQuery则调用查询的结果和有用的数据。