У меня была программа Delphi 4, которую я разработал много лет назад, которая использовала Opus DirectAccess для последовательного поиска в базе данных Microsoft Access и получения желаемых записей. В Delphi 4 не было ADO, поэтому я использовал DirectAccess.Почему ADO Следующая обработка записей замедляется в Delphi?
Но теперь я обновлен до 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