gpt4 book ai didi

delphi - 如何防止Delphi ADO将整个表加载到内存中?

转载 作者:行者123 更新时间:2023-12-03 14:50:46 25 4
gpt4 key购买 nike

我不是 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 中,并且需要时间!

我们正在使用 MSDASQL.1 提供程序。也许它不支持 MaxRecords 属性?

如何向此数据对象添加一些限制查询以仅“从测量中加载 TOP 1 *”?

最佳答案

您可以使用 TADOQuery 来限制 SQL 查询的结果集。或者您可以使用 TADOTable 并设置 CursorLocation到服务器端游标以防止客户端将完整的结果集加载到内存中。

关于delphi - 如何防止Delphi ADO将整个表加载到内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com