我不是 Delphi 程序员,但我有一个旧的 Delphi 7 应用程序,我需要修复它,它正在使用 ADO。
数据库表(MS Accesss)包含 +100,000 行,当我设置 ADOTable.Active=true 时,它开始将整个表加载到 RAM 中,这需要大量内存和时间。
如何防止 ADO 加载整个表?我试图设置 MaxRecords 但它没有帮助。
基本上我们所做的就是 att 程序启动:
// Connect to database
DataModule.MyADOConnection.Connected:=true;
DataModule.MeasurementsADOTable.MaxRecords:=1;
// Open datatables
DataModule.MeasurementsADOTable.Active:=true;
设置 Active=true 后,它开始将整个测量值加载到 RAM 中,这需要 TIME!
我们正在使用 MSDASQL.1 提供程序。也许它不支持 MaxRecords 属性?
如何在此数据对象中添加一些限制查询以仅“从测量中加载 TOP 1 *”?