Главная страница
    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.036 c
14-1087993576
vecna
2004-06-23 16:26
2004.07.11
Не пятница, но тем не менее...


14-1087761409
Yegorchic
2004-06-20 23:56
2004.07.11
Принтер и цвет...


14-1087942309
Феликс
2004-06-23 02:11
2004.07.11
Георгий Ярцев: "Мы успешно съездили на Евро-2004"


3-1087307503
denis24
2004-06-15 17:51
2004.07.11
Внешнее обьединение с несколькими таблицами


3-1087039239
Uran
2004-06-12 15:20
2004.07.11
Хранимая процедура и BLOB





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