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

Вниз

Прогресс выборки TADOQuery нерегулярный   Найти похожие ветки 

 
Tack   (2008-01-30 11:45) [0]

Делаю выборку всех записей из таблицы MS Access. Использую TADOQuery (Ms Jet) с флагом ExecuteOptions = eoAsyncFetchNonBlocking
Для отображения асинхронного прогресса выборки у TADOQuery есть событие OnFetchProgress, которому передаются Progress, MaxProgress (Integer), кол-во записей соответственно прочитанных и оставшихся.

Попытка отображения прогресса на градуснике по этим параметрам приводит к тому, что прогресс очень быстро доходит до 99% и ждет завершения выборки, не особо двигаясь вперед, т.к. по ходу выборки Progress и MaxProgress уравниваются.

Что сделать, чтобы выборка отображалась на индикаторе более регулярно?


 
sniknik ©   (2008-01-30 11:57) [1]

поменять флаг... eoAsyncFetchNonBlocking на чтото другое... не помню, но точно не на неблокирующий (скорее на просто асинхронный).
и еще чтото, по мелочи, надо посмотреть. но главное надо "убить" TADOQuery и заменить его TADODataSet-ом.


 
sniknik ©   (2008-01-30 12:10) [2]

хотя нет, сорри, с eoAsyncFetchNonBlocking тоже работает, дело в другом.

а вот то, что MaxProgress содержит общее количество это не верно, в нем количество обработанных на данный момент, в Progress количество переданных на клиента...
т.что чтобы узнать общее надо предварительно запрос на количество делать, и молиться чтобы оно не изменилось в процессе. ;о)


 
DiamondShark ©   (2008-01-30 12:17) [3]

Редко какой провайдер сообщает точное значение счётчика строк для результирующего набора.

Остаётся только смириться.


 
ANB ©   (2008-01-30 12:46) [4]


> Tack   (30.01.08 11:45)

Прогресс отбора имеет смысл только для отображения процесса фетча большого количества записей как результата очень простого запроса.
Типа селект * фром Табле1.
Однако такие запросы не есть хорошо, а иногда могут просто завалить сервер.
В других же случаях, как правило, большая часть времени уходит на обработку запроса, а не на передачу строк на клиента. И в этих случаях прогресс бессмысленен.


 
Tack   (2008-01-30 13:01) [5]

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



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

Форум: "Базы";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.048 c
15-1211642824
Пробегал2...
2008-05-24 19:27
2008.07.06
Надпись на футболке


15-1211721164
Vipr
2008-05-25 17:12
2008.07.06
Где взять справочник населенных пунктов СНГ (можно и платно)


15-1211534909
Reindeer Moss Eater
2008-05-23 13:28
2008.07.06
рашен процессор каминг сун


8-1164287214
Змей
2006-11-23 16:06
2008.07.06
общение по микрофону через сеть


9-1172040240
Cerberus
2007-02-21 09:44
2008.07.06
Вопрос XProger у по его сетевому модулю.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский