我有一個多年前開發的Delphi 4程序,它使用Opus DirectAccess來順序搜索Microsoft Access數據庫並檢索所需的記錄。 Delphi 4沒有ADO,所以這就是我使用DirectAccess的原因。爲什麼在Delphi中ADO Next記錄處理速度變慢?
但我現在升級到Delphi 2009並將程序轉換爲使用ADO。我發現,通過表格(大約100,000條記錄)的循環開始的速度與DirectAccess中的循環速度一樣快,但隨後開始變慢,並且在通過表格時變得越來越慢。基本循環是:
ArticlesTable.First;
while not Cancel and not ArticlesTable.Eof do begin
(See if the current record has criteria desired)
(If so, process the record)
ArticlesTable.Next;
end;
所以基本上,它只是使用.Next方法按順序處理記錄。
那麼爲什麼它放緩,我怎麼能重新編碼這個,以便它不會放慢速度?
添加「ArticlesTable.DisableControls;」在「ArticlesTable.First;」之前解決了這個問題。完善!非常感謝! – lkessler 2009-09-30 06:30:08