我不是一個Delphi程序員,但我有一箇舊的Delphi 7應用程序,我需要修復它並使用ADO。如何防止Delphi 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;
設置生效後=真它開始加載整個測量到RAM中,需要時間!
我們使用MSDASQL.1提供程序。也許它不支持MaxRecords屬性?
如何在此數據對象中添加一些限制查詢以僅從測量中加載TOP 1 *?
我怎麼跟我MSACCESS連接的TClientdataSet?你有一些你可以分享的示例代碼嗎? – Vlad 2012-10-26 17:45:04
@Vlad:過程總是相同的:將TClientDataset(CDS)與TDatasetProvider(DSP)連接起來,然後將屬性DSP.DataSet屬性指向您要帶入數據的ADOQuery。在About.com上的Delphi部分,你可以找到成千上萬的例子,也可以在embarcadero docwiki上找到。 – 2012-10-26 18:23:01