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

Вниз

Как сделать термометр для отображения процесса чтения blob поля?   Найти похожие ветки 

 
С.М.   (2004-06-10 18:19) [0]

Вытаскиваю из базы blob в файл:

IBSQL1.SQL.Clear;
IBSQL1.SQL.Add("SELECT * FROM MTABLE WHERE REGNOM="+sMsg);
IBSQL1.ExecQuery;
if not IBSQL1.EOF then
IBSQL1.FieldByName("WRFILE").SaveToFile("c:\temp\out.");


Все прекрасно, но если размер файла около 50 mb, это занимает некоторое время, хочется добавить термометр отображающий прогресс. Даже не соображу с какой стороны подойти.
SaveToStream тоже тормозит, или я че-то не-то делаю :(
Помогите пожалуйста.


 
С.М.   (2004-06-11 12:05) [1]

Даже идей нет?
Насколько я понял SaveToStream тянет весь blob на машину, а как бы вставить Application.ProcessMessages после закачки X байт?


 
Johnmen ©   (2004-06-11 12:19) [2]

Никак. Сей процесс целостный и неделимый с т.з. прямого использования.


 
С.М.   (2004-06-11 12:42) [3]

Спасибо :(
Кажется придумал, правда криво: Запустить закачку блоба отдельным приложением с пониженным приоритетом, а из основной проги контролировать размер получаемого файла на диске.
Или не выйдет?


 
Sandman25 ©   (2004-06-11 12:44) [4]

[3] С.М.   (11.06.04 12:42)

Замедлять загрузку, чтобы отображать прогресс? Довольно жестоко...


 
С.М.   (2004-06-11 13:14) [5]

Мне кажется что основной тормоз идет с 10Mb карточки, а у компа ресурса должно хватать. Впрочем, незначительное замедление несмущает. Если прога сможет общатся с пользователем пока идет закачка.
Ладно, спасибо, попробую. Буду разбираться с приоритетами.
Впрочем другие идеи принимаются.


 
Johnmen ©   (2004-06-11 13:33) [6]

>из основной проги контролировать размер получаемого файла на диске.
>Или не выйдет?

Не выйдет. Т.к. пока пишется, размер неизвестен...

Если нужно общаться с пользователем во время закачки, то и закачивай в отдельном потоке.


 
С.М.   (2004-06-11 15:57) [7]

Плохо...
Отдельная задача, мне кажется, больше подходит, чем поток. Хоть и дольше, но ее проще снять не убивая основную. Вот только как узнать, что она тянет файл, а не висит? и хоть примерно когда закончит? Косвенно ориентироватся по свободному месту на винте - совсем криво :(


 
Sandman25 ©   (2004-06-11 15:58) [8]

>Вот только как узнать, что она тянет файл, а не висит?

В общем случае задача неразрешимая



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

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

Наверх





Память: 0.46 MB
Время: 0.033 c
1-1088071668
Aleksandr.
2004-06-24 14:07
2004.07.11
Как определить, является файл бинарным или текстовым?


1-1088100685
Heretic
2004-06-24 22:11
2004.07.11
Шпионы (см. изменения в Excel)


8-1081016095
Forelli
2004-04-03 22:14
2004.07.11
Как проигрывать CDA файлы (AudioCD) в программе?


4-1086184785
FRick
2004-06-02 17:59
2004.07.11
Язык клавы при запуске программы


1-1088554460
Alexey Leonchik
2004-06-30 04:14
2004.07.11
Список открытых окон в меню (MDI)





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