![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 25
|
![]()
Здравствуйте!
Подскажите, почему программа чтения значений полей из таблицы ADOTable работает медленно (чем больше записей в таблице тем медленее) - 52 секунды, а если я убираю из цикла команду ADOTable1.Next, то выполняется за 5 секунд? Можно ли увеличить скорость выполнения программы с командой ADOTable1.Next ? Программа Код:
Последний раз редактировалось Stilet; 20.01.2015 в 11:25. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Такие циклы лучше делать while not ADOTable1.Eof do если вообще делать.
Без Next-а не будет перехода на следующую запись. И, да, чем больше записей в таблице тем дольше. И чем больше обращений к vcl в цикле, тем хуже. Приведенный цикл вообще-то ни чего не делает, кроме бестолкового обращения к vcl
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]()
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
нельзя except пустым делать...
Код:
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 25
|
![]()
Попробую, то что Вы предлагаете.
Задача: есть таблица.dbf, надо данные прочитать в поля массива. Я привел упрощенную рпограмму без записи в массив, но суть дела не меняет. Как бы ускорить чтение данных из таблицы в массив. |
![]() |
![]() |
![]() |
#6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]() А зачем читать в массив еще? Всмысле сам полученный набор он ведь и так в памяти массивом двумерным хранится как правило. Так-то конечно если нужна перегонка, без цикла не обойтись, но для чего... Я может глупые вопросы задаю, но ИМХО перечитка данных делается в особых случаях, когда это действительно необходимо. Врядли твой случай такой.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Массив - это что? DBGrid не подойдет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 25
|
![]()
Исходная таблица находится в файле в формате FoxPro, программа на Дельфи напрямую не работает с такой таблицей, поэтому надо переслать в массив.
Проверил с WHILE - выполняется за 50 сек. Пробовал с DBGridом работает еще медленее. |
![]() |
![]() |
![]() |
#9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Ладно, не буду мешать флудом - Делай в цикле перегонку и не используй в нем никаких визуальных компонентов.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А сколько записей в той таблице?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ADOTable связи | MrMorozko | БД в Delphi | 1 | 04.05.2011 09:36 |
Вопрос по ADOTable | Sanakan | Помощь студентам | 1 | 28.03.2010 12:35 |
AdoTable | Artruman | БД в Delphi | 4 | 03.04.2009 02:07 |
AdoTable | Mishina | БД в Delphi | 2 | 15.06.2008 06:35 |
Как копировать данные из ADOTable в ADOTable? | mauar | БД в Delphi | 1 | 10.05.2008 16:05 |