Delphi下面的ADO数据集的Next效率低及解决办法

      ERP和大型数据库应用,无疑都需要存取各种不同的数据并根据这些数据进行运算。而直接通过ADO进行数据库方面的开发成为开发人员的首选。 ADO Microsoft 存取通用数据源的标准引擎, ADO 主要是让应用程序或 Web 应用程序存取各种不同的数据源。 ADO 封装了 OLE-DB 复杂的接口,以极为简单的 COM 接口存取数据。Delphi中有经过进一步的封装,使其更灵活的使用和开发。 然而大多数程序开发人员的都会遇到下面的情况:Next方法性能比较差,尤其大量的数据,调用Next,越到最后速度越慢。
     通过分析ADO的VCL代码,主要是DB.pas和AdoDB.pas发现问题出现在InternalGetRecord函数本身,如果将RecordNumber := Recordset.AbsolutePosition;去掉发现效率明显的提高。
     解决办法是:
     1.自己封装原生ADO
     2.在现有的代码基础上设置ADODataSet或ADOQuery的DisableControls属性


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值