Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: CL | DM;

Вниз

Как сделать термометр для отображения процесса чтения 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.047 c
10-1019029082
s_alexander
2002-04-17 11:37
2004.07.11
Как сделать соединение с сервером приложений из внешней сети?


14-1087993576
vecna
2004-06-23 16:26
2004.07.11
Не пятница, но тем не менее...


3-1086933832
coldplayer
2004-06-11 10:03
2004.07.11
RXDBGrid + ADO. Проблема сортировки.


1-1088084783
Новенький
2004-06-24 17:46
2004.07.11
Вопрос по WebBrowser у.


1-1088071926
AlexeyA
2004-06-24 14:12
2004.07.11
Delphi (используемая приложением память)