![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать термометр для отображения процесса чтения blob поля? [D6]
С.М. © (2004-06-10 18:19:00)Вытаскиваю из базы 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 тоже тормозит, или я че-то не-то делаю :(
Помогите пожалуйста.
Sandman25 (2004-06-11 15:58:00) [1]>Вот только как узнать, что она тянет файл, а не висит?
В общем случае задача неразрешимая
С.М. (2004-06-11 15:57:00) [2]Плохо...
Отдельная задача, мне кажется, больше подходит, чем поток. Хоть и дольше, но ее проще снять не убивая основную. Вот только как узнать, что она тянет файл, а не висит? и хоть примерно когда закончит? Косвенно ориентироватся по свободному месту на винте - совсем криво :(
Johnmen (2004-06-11 13:33:00) [3]>из основной проги контролировать размер получаемого файла на диске.
>Или не выйдет?
Не выйдет. Т.к. пока пишется, размер неизвестен...
Если нужно общаться с пользователем во время закачки, то и закачивай в отдельном потоке.
С.М. (2004-06-11 13:14:00) [4]Мне кажется что основной тормоз идет с 10Mb карточки, а у компа ресурса должно хватать. Впрочем, незначительное замедление несмущает. Если прога сможет общатся с пользователем пока идет закачка.
Ладно, спасибо, попробую. Буду разбираться с приоритетами.
Впрочем другие идеи принимаются.
Sandman25 (2004-06-11 12:44:00) [5][3] С.М. (11.06.04 12:42)
Замедлять загрузку, чтобы отображать прогресс? Довольно жестоко...
С.М. (2004-06-11 12:42:00) [6]Спасибо :(
Кажется придумал, правда криво: Запустить закачку блоба отдельным приложением с пониженным приоритетом, а из основной проги контролировать размер получаемого файла на диске.
Или не выйдет?
Johnmen (2004-06-11 12:19:00) [7]Никак. Сей процесс целостный и неделимый с т.з. прямого использования.
С.М. (2004-06-11 12:05:00) [8]Даже идей нет?
Насколько я понял SaveToStream тянет весь blob на машину, а как бы вставить Application.ProcessMessages после закачки X байт?