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

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

Как сделать ProgressBar на выполнение запроса??? [D6]


Relaxxx ©   (2004-04-15 10:24:00) 

Собственно проблема, есть запрос который долго выполняется и нужно чтобы, во время его выполнения бежал ProgressBar. У меня база данных Oracle8.0.5 и пользуюсь ODAC 3.85


Женя   (2004-04-19 14:36:00) [1]

Обработанных запросом.


Соловьев   (2004-04-19 14:31:00) [2]


> Выглядит весьма естественно, похоже, отображается по количеству
> обработанных на данный момент строк.

что значит обработаных? при запросе? или при каких-то операциях?


Женя   (2004-04-19 14:29:00) [3]

интересно, а как же строится програссбар в  DbExplorer32.
Выглядит весьма естественно, похоже, отображается по количеству обработанных на данный момент строк.
Притом отображается и при рапросах и при проверке и при перестройке индексов корректно. Может посмотрите, кто там больше в этом смыслит?
у меня RX Database Explorer v2.5 Кошевникова и Павлука.


_sulent   (2004-04-19 13:30:00) [4]

Мне кажется только аниме здесь выход, более никак... запросы на то они и есть запросы... как говорилось выше, даже сервер не знает в процессе сколько он будет выполнять тот или иной запрос!
Конечно можно попробовать сделать как тоже говорилос выше, узнать количество записей и первый проход и расчитать примерное время, но все это криво и будет тратиться больше времени на выполнение запроса!

Делай аниме и не мучайся...


dimm22   (2004-04-19 10:04:00) [5]


> Вариант - узнаем с помощью Count число строк в будущем запросе

Так это по времени, наверное, будет сравнимо с самим запросом ?!


Sergey13   (2004-04-19 09:38:00) [6]

2Vemer ©   (19.04.04 09:26) [12]
А как рисовать прогрес для запроса с count?


Vemer   (2004-04-19 09:26:00) [7]

Вариант - узнаем с помощью Count число строк в будущем запросе, а потом рисуем ProgressBar определенное время исходя из данной цифери. Но не очень прямое решение..:).


Anatoly Podgoretsky   (2004-04-19 09:22:00) [8]

Такой прогресс бар можно сделать только выполнив весь запрос, но тогда пропадает смысл в этом. Да и то только в монопольном режиме, при том только для процента выполнения, но не для времени.


VAleksey   (2004-04-19 09:18:00) [9]


> serge35   (15.04.04 11:38) [8]

См.

> Reindeer Moss Eater ©   (15.04.04 11:32) [6]


slayer   (2004-04-19 03:45:00) [10]

Посмотри может подойдет http://www.delphimaster.ru/download/index1.html


serge35   (2004-04-15 11:38:00) [11]

Даже мелкософт при всей своей любви к рюшечкам ничего кроме анимации не придумал.
У Оракла тоже по-моему ничего нет. Если бы было, то в Oracle Applications наверняка это было бы раелизовано.


Соловьев   (2004-04-15 11:34:00) [12]

У ADO есть TCustomADODataSet.OnFetchProgress - может такое есть и у DAO

Но имхо, можно только закачку определить, но никак не время выполнения запроса. Это зависит от многих причин.


Reindeer Moss Eater   (2004-04-15 11:32:00) [13]

Фигня все это.
Сервер сам ничего не знает про свою нагрузку которая у него будет через три секунды. Поэтому и время окончания запроса он не знает, а только догадывается.
Прогресс бар - баловство.
Cursor := crSQLWait или просто анимация


Relaxxx   (2004-04-15 11:28:00) [14]

Узнать бы какая :-), попробую сейчас порытся может что-то и накопаю


VAleksey   (2004-04-15 11:06:00) [15]

На самом деле для оракла как-то можно.
Ведь считает он стоимость запроса. Значит примерно можно определить состояние запроса по количеству прочитанных блоков. Какая-то его тулза даже умеет это делать. Сам видел :-)).


Relaxxx   (2004-04-15 11:02:00) [16]

очень жаль, :-((((
А запрос уже оптимизирован, просто это для ведомости и работает он со множеством таблиц и со сложными групировками


dimm22   (2004-04-15 10:53:00) [17]

Запусти ProgressBar по таймеру, просто чтобы пользователь видел, что программа не висит.


Sergey13   (2004-04-15 10:43:00) [18]

Нормально - никак. ИМХО.
Лучше анимашку какую нить запусти. Или работай над запросом, иногда потребность в прогресбаре отпадает совсем. 8-)


Наверх

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