![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Визуализация запроса [D4, D6, Paradox]
Veles © (2002-10-22 05:41:00)Подскажите МАСТЕРА !
Возможно ли в процессе выполнения запроса показывать какой-либо индикатор ? База большая 250000 строк и запрос иногда довольно ощутимо отрабатывает по времени. Пользователи сатанеют и давят куда попало :-(
Geka (2002-10-30 15:10:00) [1]Можно просто менять курсор...
Screen.Cursor := crHourGlass;
Query.Open;
Screen.Cursor := crDefault;
gek (2002-10-30 14:37:00) [2]Посм как это в Rx сделано. Правда не всегда корректно работает
b-Ars (2002-10-30 14:32:00) [3]Всё, что я нарыл по этому поводу в хэлпе, это: cbGENPROGRESS, но там ничего конкретного, одна вода, может быть кто-нибудь разбрался? Киньте примерчик плиз.
MsGuns (2002-10-22 13:52:00) [4]Если запрос "независимый", например, для получения некоторого запроса, во время выполнения которого юзер может продолжать себе смотреть или редактировать таблицы, я часто использую запуск TQuery как паралелльно процесса или ветки (Thread), показывая где-нибудь в статус-баре что-то типа "Формирование отчета", через таймер опрашивая его (процесс) на предмет завершения или просто проверяя содержимое некоего флажка, который переводится в True самим дочерним процессом по завершению запроса или скрипта.
Тормозить этот процесс-запрос из головного процесса не рискую, - боюсь выбрыков BDE.
Напрямую отслеживать состояние выполнения запроса в BDE через стандартные BDE-компоненты ТОЧНО НЕЛЬЗЯ. Исследуя прямые вызова Dbixxxxxx, что-то подобное встрячал, но, честно скажу, толком не разобрался - больно круто написано (для меня 8)
b-Ars (2002-10-22 12:17:00) [5]>Fiend © (22.10.02 10:37)
Да, плиз, если не сложно, киньте примерчик
Fiend (2002-10-22 10:37:00) [6]Можно действительно исполльзовать колобки (callback functions). Если кому надо могу кинуть пример.
Тока надо заметить, что оно не для всех БДЖ работает. Это оговаривает сам Борланд. Т.к. не все СУБД обеспечивают работу этого механизма. Работает тока в Ракле Микрософте и Сибэйзе.
Reindeer Moss Eater (2002-10-22 10:10:00) [7]Индикатор показать конечно можно, только SQL сервер часто сам не знает, сколько времени требуется для выполнения запроса.
Виталий Панасенко (2002-10-22 08:47:00) [8]В RxLib что-то есть но я не понял как работает. Там насчет Call-back функций BDE что-то написано... Ну, оно мне надо ?.. :-)))
Veles (2002-10-22 07:18:00) [9]Спасибо :-))
VAleksey (2002-10-22 07:12:00) [10]примерно так
IndicatorForm.Show;
Query1.Open;
IndicatorForm.Close;
Ну и там в событиях IndicatorForm OnShow например начинай гонять авишку. Все должно работать.
Veles (2002-10-22 07:05:00) [11]А как с передачей управления ?
Т.Е. как закрыть эту форму по окончании действия запрос ? собственно именно в этом и проблема.
VAleksey (2002-10-22 07:01:00) [12]Индикатор вряд ли.
Остается просто показать форму на которой будет проигрываться какая - нибудь небольшая авишка (по типу как при копировании в виндовс). Тогда пользователи будут знать что программа не зависла