Форум: "Начинающим";
Текущий архив: 2011.06.26;
Скачать: [xml.tar.bz2];
ВнизQuick Report: Блокируется файл отчета после экспорта в PDF Найти похожие ветки
← →
>|< (2011-03-23 16:24) [0]код
pdfFilter := TQRPDFDocumentFilter.create(pdfFileName);
try
Report.ExportToFilter(pdfFilter);
inc(processed);
finally
pdfFilter.Free;
end;
Пока работает программа, файл pdfFileName ,блокируется.
Как можно снять блокировку с файла, не изменяя исходников Quick Report?
← →
Anatoly Podgoretsky © (2011-03-23 16:32) [1]То есть позволить портить результат, нет мы не можем на это пойти.
← →
>|< (2011-03-23 16:39) [2]ничего портить не нужно. В исходниках Quick Report файл, в который произведен экспорт, не отпускается даже после того, как сам экземпляр отчета был освобожден и создан заново для других данных. То есть, ребята забыли освободить ссылку на файл, и он блокируется приложением, пока его не закроешь. Это неудобно. Но не критично.
Программа формирует пакет отчетов. Когда формируется следующий, хотелось бы уже открывать предыдущий, не дожидаясь завершения процесса формирования всех отчетных файлов.
Банальная утечка памяти в чужих исходниках, в которые неохота вникать.
Уважаемый Анатолий Подгорецкий!
Если у Вас есть еще какие-нибудь сомнения, огласите их, чтобы я их развеял))
← →
Плохиш © (2011-03-23 17:10) [3]
> >|< (23.03.11 16:39) [2]
>
> ничего портить не нужно. В исходниках Quick Report файл,
> в который произведен экспорт, не отпускается даже после
> того, как сам экземпляр отчета был освобожден и создан заново
> для других данных. То есть, ребята забыли освободить ссылку
> на файл
Надо написать разработчику.
← →
>|< (2011-03-23 17:23) [4]
> Надо написать разработчику.
Разумеется.
Но мне нужно временное решение на сегодня, пока разработчик выпустит свое обновление на этот баг, если вообще выпустит.
Возможно, буду экспортировать во временный файл, и по завершению копировать в другую папку.
Нашел толковую статью http://www.wasm.ru/article.php?article=lockfileswork
но лень переписывать под делфи.
← →
Игорь Шевченко © (2011-03-23 17:39) [5]
> Но мне нужно временное решение на сегодня
изменить исходники, перекомпилировать, написать разработчику.
(мы так делали, вполне себе успешно, в qbs software народ вполне адекватный)
← →
>|< (2011-03-23 18:20) [6]
> Игорь Шевченко © (23.03.11 17:39) [5]
нашел в исходниках
procedure TQRPAbstractExportFilter.CreateStream(FileName: string);
begin
FStream:=TFileStream.Create(FileName, fmCreate);
end;
procedure TQRPAbstractExportFilter.CloseStream;
begin
FStream.Free;
end;
посмотрел под отладчиком - оба места программа успешно проходит.
Что еще может блокировать файл?...
← →
>|< (2011-03-23 18:26) [7]Изучая исходники, нашел то, что мне нужно:
procedure TQRPDFDocumentFilter.CloseStream;
begin
if FreeStream then inherited CloseStream;
end;
То есть, присвоить свойству FreeStream значение True.
Благодарю всех за внимание. Вопрос исчерпан.
← →
>|< (2011-03-23 18:32) [8]Снимаю все претензии к QuickRep
Файл блокировался при записи в блоб в БД и не освобождался LOBLocator после записи.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.06.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c