|
|
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
Добрый день! Может кто подсказать: Delphi XE3 Fastreport 4.14 По кнопке открываю отчет таким вот образом: Код: pascal 1. 2. 3. В самом отчете простейший select из БД (Firebird 2.5), без параметров. Если отчет много раз открыть-закрыть, то в один прекрасный момент программа вылетает в out of memory (конечно есть отчеты разные, большие и маленькие, кто-то вылетает раньше, кто-то позже). Каким образом заставить отдавать память при закрытии отчета? Или не потреблять ее при повторном его открытии? М.б. какое-то свойство? Испробованы все обычные close, clear, stopreport и т.п. Попытки создавать динамически frxReport, оборачивать в try/finally и в finally делать ему Free не дают результата. Наверное дело в запросе к БД, т.к. если открывать таким же образом отчет со статическим текстом, то память при закрытии отчет отдает обратно. Такое ощущение, что упускаю что-то простейшее, иначе проблема была бы массовой, а я не нахожу ничего в инете по теме. Простите за тупость, натолкните на мысль, пожалуйста!! сам отчет Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 16:09:40 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
khrysh, А что говорит поддержка FR? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 16:26:32 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
asviridenkov, пока до них дело не дошло до этого момента здесь находились ответы на все возникающие вопросы тем более есть ощущение что это я туплю в чем-то ну а так-то придется, конечно, туда писать, если вопрос решить не получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 16:43:06 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
Может быть, дело в компонентах доступа к БД. Какие компоненты используешь ? А ты попробовал закрывать запрос вместе с уничтожением отчёта ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 16:50:03 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
defecator, в отчете IBXQuery, у него же в свойствах стоит CloseDataSource=true а из самой делфи при закрытии отчета не закрываю запрос (по правде потому что первый раз слышу что так можно, сча погуглю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 16:57:03 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
Ищем утечки памяти . Если делфи выше 7, то можно в любом месте программы написать "ReportMemoryLeaksOnShutdown := True;" и при закрытии увидеть отчет об утечках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 17:16:43 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
khrysh, FastMM4 + {$define FullDebugMode} + {$define EnableMemoryLeakReporting} покажет утечку, дальше дело техники.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 17:20:23 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
закрытие запроса таким вот образом, к сожалению, результата не дало: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. утечки, действительно, есть. при чем, если отчет не вызывать, то программа закрывается без утечек, а если вызвать - то они есть. за ссылку спасибо, буду разбираться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 17:27:37 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
khrysh, разговоры в пользу бедных. В отчете запросто могут быть созданы объекты, требующие явной деинициализации. Например, в скрипте. Кроме того, для отчета ты, скорее всего, создаешь набор данных, который, возможно, остается открытым. При повторном вызове процедуры ты снова создаешь набор данных. Вот память и заканчивается. И т.п. Короче, хочешь помощи - предоставь проект, воспроизводящий проблему. PS: Для поиска утечек памяти можно воспользоваться FastMM4 . Но он не поможет, если созданные объекты подчищаются при закрытии приложения. PPS: для поиска утечек лучше пользоваться бо'лее специальными инструментами, чем FasmMM4. Например, если у тебя Delphi >= XE, то попробовать изпользоваться библиотекой https://bitbucket.org/shadow_cs/delphi-leakcheck/src Например, вот так: 18326237 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 17:59:09 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
лог fastMM выдает вот такие данные Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. т.е. вроде как действительно проблема в датасете вопрос в том, как это починить, как закрыть этот набор данных? в самой проге только TIBDataBase (подключение к БД) и Транзакция, коммит транзакции и даже отключение коннекта от БД не помогает. на форме frxIBXComponents1 (к которому подключена TIBDataBase) и сам отчет frxReport1. В отчете Tfrxibxquery, в котором выбираются данные и выводятся в мемо (мемо несколько). Могу скинуть тестовый проект, только как быть с коннектом к БД и таблицей? Или может кто так подскажет, как такую утечку убрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 19:10:29 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
khrysh... Могу скинуть тестовый проект, только как быть с коннектом к БД и таблицей? Или может кто так подскажет, как такую утечку убрать Включи тестовую базу с нужными таблицами в той же директории, что и программа. Чтобы после распаковки в любое место компилировалось и запускалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 19:14:47 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
Поиграйтесь с TfrxIBXQuery.Query.UniDirectional Если не поможет - создавайте и отсылайте тестовый проект на support@fast-report.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2015, 10:37:41 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
khryshDelphi XE3 Update для Delphi стоит? В релизе у XE3 была утечка памяти в IBX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2015, 10:48:51 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
Благодарю за все советы, собрала тестовый пример, вместе с исходниками и FASTMM. http://ifolder.com.ua/rp0polj7hup5.html Если кому не трудно, гляньте, пожалуйста) Update для Delphi не стоит, посмотрю в эту сторону, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2015, 12:24:31 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
khrysh, Проект весом 19,12 Мб, и ждать 5 минут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2015, 15:27:50 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
Tactical Nuclear Penguin, Действительно, дело в XE3 и утечке памяти в IBX, проверила в другой версии Delphi - все ок. Всем спасибо огромное) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 18:44:21 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
khryshTactical Nuclear Penguin, Действительно, дело в XE3 и утечке памяти в IBX, проверила в другой версии Delphi - все ок. Всем спасибо огромное) я бы сократил до: khryshдело в утечке памяти в IBX Потому что IBX - это та ещё клоака ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 18:46:49 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
defecatorПотому что IBX - это та ещё клоака )))И почему у меня к ним нет никаких претензий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 19:10:01 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
defecatorkhryshTactical Nuclear Penguin, Действительно, дело в XE3 и утечке памяти в IBX, проверила в другой версии Delphi - все ок. Всем спасибо огромное) я бы сократил до: khryshдело в утечке памяти в IBX Потому что IBX - это та ещё клоака ))) Я до "переезда" на FIB+ использовал IBX. Ничего страшного не запомнилось. Правда, это еще при Delphi 6 было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 19:13:08 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_defecatorПотому что IBX - это та ещё клоака )))И почему у меня к ним нет никаких претензий? Наверное потому, что ты умеешь их готовить?-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 19:17:36 |
|
||
|
Fastreport out of memory
|
|||
|---|---|---|---|
|
#18+
khryshДействительно, дело в XE3 и утечке памяти в IBX, проверила в другой версии Delphi - все ок. Что там такое сделали, что появились утечки? Ibx простая, как топор, библиотека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 19:34:44 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39095506&tid=2041900]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
293ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
6ms |
| others: | 194ms |
| total: | 602ms |

| 0 / 0 |
