Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Вниз

Коллеги, чем бы занять юзера на время окрытия базы???   Найти похожие ветки 

 
DBDev   (2003-07-02 17:37) [0]

Я стартую окно с avi-шкой на подобие копирования файлов в Windows, но хочется организовать грамотный Multithread-ный ProgressBar.

Ни у кого нету готового решения?
Буду весьма признателен...


 
Johnmen   (2003-07-02 18:01) [1]

>окно с avi-шкой

Это как ? Если так, как я думаю, то ничего не надо организовывать - она и так крутиться в другой нитке...


 
Юрий Зотов   (2003-07-02 19:35) [2]

А к чему этот ProgressBar привязывать? Где взять Max и Position? Обратной связи нет, время открытия тоже заранее неизвестно.

Тут только как-то косвенно привязывать можно, возможно, с итерационным уточнением уже по ходу самого открытия. Но вряд ли все это будет лучше, чем просто AVI.


 
panov   (2003-07-03 02:14) [3]

Вопрос обсуждался достаточное количество раз.
ProgressBar просто показывает, что программа работает, т.е. Крутится бесконечный цикл.

После открытия последней таблицы/БД цикл прерывается и управление возвращается в основную программу.

Хотя можешь и анекдоты в цикле выдавать...-) гы.


 
BorisUK   (2003-07-03 07:07) [4]

Прогрес бар не лучшее решение...
Это ИМХО ...
я делал и... если время подрасчитал не правильно... тоесть не всегда его хватает на запрос - очень сложно учесть все возможные запросы время колеблется от секунды до десятков минут...
то естественно я его зацикливаю...(можно было еще какнить - например max величивать, но решил так лучше)
и когда юзеры видят что он по кругу раз несколько уже прокрутился, то у них складывается впечатление что прога зависла...
Наиболее самостоятельные, ети их мать.. сбрасывают задачу и тут же запускают заново этот же запрос.. но уже повторно... естественно старый на базе все еще выполнялся.
Так не раз мне вешали базу... сколько по голове не бил не помогает :)

Так что, опять же ИМХО, делать формачку типа "Погодите - РАБОТАЮ..." на неё анимацию... или типа какихнить Tips&Tricks меняющихся...
в общем чтоб у юзера не возникало подозрений что прога зависла...
И запрос конечно в отдельной нитке нужен... чтоб основное окно приложения можно было свернуть, развернуть... чтото еще пока поделать (если исходя из задачи это возможно), чтоб оно не блокировалось на время запроса, естественно, операции которые нельзя выполнять параллельно с запросом - надо сделать недоступными на время запроса.


 
Alexandr   (2003-07-03 09:44) [5]

не должно быть таких долгих запросов. Однозначно.


 
DenK_vrtz   (2003-07-03 10:44) [6]

>Коллеги, чем бы занять юзера на время окрытия базы???

Поиграть с ним в шашки! :-) (без обид!)


 
pasha_golub   (2003-07-03 10:47) [7]


> DenK_vrtz

Лучше в прятки :-)

А если серьезно, то я сделал так: создал файл компьютерных терминов из полей Термин, Перевод, Дополнительно. И при каждом длительном процессе случайно показывается один из них. Результат на лицо :-)
Можно слова англицкие, таблицу умножения etc :-)


 
shane54   (2003-07-03 12:20) [8]

Alexandr © (03.07.03 09:44)
не должно быть таких долгих запросов. Однозначно.


******************

Это на sql.ru говори.


 
VMcL   (2003-07-03 14:30) [9]

>Alexandr © (03.07.03 09:44)
>не должно быть таких долгих запросов. Однозначно.

Неужели? А как Вам, уважаемый, реестр всех расходных накладных за месяц (в день вбивается около 400 расх. накл.) с десятком колонок в отчете?


 
Zacho   (2003-07-03 14:39) [10]


> VMcL © (03.07.03 14:30)

Imho, Alexandr имел в виду время выполнения запроса, а не время фетча резалтсета на клиента.


 
Крот   (2003-07-03 14:39) [11]

Боюсь попасть пальцем в небо, но у TADOQuery есть свойство OnFetchProgress. Нельзя-ли им воспользоваться?


 
panov   (2003-07-03 14:51) [12]

Есть запросы, которые работают и по 40мин., и по 3 часа.
Выборки изнескольких таблиц по нескольку сот миллионов записей не всегда быстро получаются


 
Лёша   (2003-07-03 16:31) [13]

... можно порнушку показывать... :)


 
Alexandr CH_   (2003-07-03 16:52) [14]

>Есть запросы, которые работают и по 40мин., и по 3 часа.

Ну, тогда и выдумывать ничего не надо, на 3 часа все равно ничем не займешь.

А если серьезно, то таких запросов точно не должно быть.
В таких случаях нужно переложить нагрузку на сервер и оптимизировать запросы. Есть ведь и определенные требования к качеству ПО, которые предусматривают в том числе и время отклика на действие пользователя.

Реализовать ProgressBar можно и на запрос, но это достаточно сложно.(я бы не стал этого делать). Как правило 10-15 сек.
пользователь может подождать глядя на простое сообщение типа "Ждите".





 
Романов Р.В.   (2003-07-03 16:58) [15]

А еще бы хорошо по окончании выполнения запроса музыку какую нить проиграть, чтобы разбудить заснувшего юзера :)


 
DieHard   (2003-07-03 17:25) [16]

Я просто текущее время до секунд показывал и не мучился :)


 
Alexander1966   (2003-07-03 18:09) [17]

В FoxPro, помнится, во время запроса выводилось количество строчек вывода. Как тож сделали


 
EthernalWonderer   (2003-07-04 15:31) [18]

Если запрос один и тот же несколько раз, можно после каждого выполнения запоминать время выполнения, а при следующим запуске запускать Progress Bar так, чтобы он доходил до 100% за это время.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.01 c
3-55393
NataliK
2003-06-23 12:47
2003.07.17
DBGridEh в Win XP и Win 98


6-55700
Dion
2003-05-13 07:33
2003.07.17
Подскажите, Плз, как можно программно определить имя пользователя


7-55866
Cooller
2003-05-07 14:27
2003.07.17
Имя дисковода


4-55884
Executor
2003-05-12 14:14
2003.07.17
Проблема с перерисовкой окна в WinXP


3-55446
merlot
2003-06-24 14:58
2003.07.17
Запрос с пользовательскими параметрами...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский