![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Привет всем мастерам! [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;