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