Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Привет всем мастерам! [D5, Paradox]


Fbist ©   (2002-11-15 13:21:00) 

Работаю с таблицами Парадокс через ADO в Windows 2000. База состоит из 2500 записей. Я пробегаю по всем записям и заполняю внутренние структурки. Но само чтение из базы осуществляется довольно долго. От 15 до 40 секунд. Можно ли как-то ускориться?
Чтение идёт так:

Table.First;
for i:=1 to Table.RecordCount do
begin
FillSctruc;
Table.Next;
end;

FillStruc просто кидает одно поле в листбокс (составляет список значений)


Fbist   (2002-11-15 14:34:00) [1]

Спасибо за ответы!
Контролы у меня свои, так как в БД лежат объекты, которые потом надо инстанцировать. А для просмотра объектов специальные контролы. В общем свои заморочки.
Интересно, можно ли как-нибудь закатать всю таблицу в поток в оперативке, и чтоб АДО с ним оттуда работал?


OlegE   (2002-11-15 14:11:00) [2]

> Fbist © (15.11.02 13:42)
Для ADO - это нормально.
Только что попробовал - 5000 записей за 110 сек.


VAleksey   (2002-11-15 14:10:00) [3]

Отключи визуальные контролы. Будет явно быстрее. Но paradox ч/з ADO ... ИМХО сильно быстро не получится.


stone   (2002-11-15 14:08:00) [4]


> Fbist © (15.11.02 13:42)
> И что, это будет значительно быстрее?

на счет скорости не знаю, но так правильнее, а 2500 записей за сорок секунд это медленно.
А почему бы тебе не выбрать это поле запросом, а его результат сохранить в листбокс. С другой стороны, зачем именно листбокс, почему не отобразить сразу в гриде.


Fbist   (2002-11-15 14:03:00) [5]

Господа Мастера, ну если не знаете как ускорить, скажите хотя кто много работал с БД - это нормальное время чтения из БД? 2500 за 40 секунд???


Fbist   (2002-11-15 13:42:00) [6]

И что, это будет значительно быстрее?


stone   (2002-11-15 13:26:00) [7]

Table.First;
while not Table.eof do
begin
FillSctruc;
Table.Next;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо