LimeReport Forum
General Category | Основное => Discussion | Обсуждение => Topic started by: svetlana on September 03, 2018, 12:59:13 pm
-
Добрый день!
Хотела проконсультироваться по поводу выполнения запросов.
У меня следующая ситуация: я добавила в lime запрос, в котором есть некоторые условия для where из диалога, чтобы он не ворочал огромным количеством данных в БД.
Проблема вот в чем: у меня есть ощущение, что при открытии соединения, чтобы сформировать список полей, lime пытается выполнить запрос. Но так как параметров из диалога еще нет, он шерстит всю БД, а это занимает огромное количество времени. При этом также создается ощущение, что lime повторяет эту процедуру при рендере отчета. То есть еще до того, как вызовется диалог.
Скажите, пожалуйста, верны ли мои предположения и как можно с этим бороться?
-
Доброго времени суток!
А сам отчет глянуть можно? Не вполне понял "многослофф" :)
-
Вам xml-ку скинуть или что-то другое?
У меня просто получается, что в зависимости от БД, если в таблицах дофига значений, то соединение и рендер открываются очень долго. При этом все это происходит (видимо) до того, как в запрос приедут ограничения в where. Если же в БД значений умеренное количество, то отчет работает приемлемое количество времени.
-
ну да, сам шаблон lrxml. База локальная или?
Оптимизировать запросы реально?
-
Приветствую
Скажите, пожалуйста, верны ли мои предположения и как можно с этим бороться?
Для получения стуктуры полей лайм действительно выполняет запрос.
Если переменные запроса пустые то на сервер в запросе летит null и в некоторых случаях это способно доставить неудобства.
Ситуацию можно исправить инициализацией переменных запроса, тем самым уменьшив количество обрабатываемых данных.
Так же, можно не ставить галочку autoConnect для соединения и в этом случае лайм не будет лазить на сервер в процессе разработки отчета.
Перед построением отчета, действительно, обновляется состояние источников данных с целью их актуализации.
И это происходит, как Вы верно заметили, до исполнения инициализационного скрипта.
Я думаю, что будет целесообразным поменять порядок подготовки отчета к генерации и вызывать обновление данных после вызова скрипта.
-
Подключаюсь к базе mysql. Отчет приложила.
При выключении автоконнекта отчет перестал делать запрос при запуске. И это хорошо.
Но я не очень поняла как:
поменять порядок подготовки отчета к генерации и вызывать обновление данных после вызова скрипта
Более того, после ввода данных в диалоге у меня крашится приложение с ошибкой сегментирования.
Не могли бы Вы что-то посоветовать? Я пробовала запускать Lime через .AppImage файл и бинарник после сборки. Но он крашится при любом раскладе. Запускаю на gentoo.
-
поменять порядок подготовки отчета к генерации и вызывать обновление данных после вызова скрипта
Это нужно сделать мне :)
Откуда берете исходники ? Если с sourceforge то попробуйте взять свежие с github на sourceforge сильно старая версия.
-
It keep on crashing, unable to open.
-
Если с sourceforge то попробуйте взять свежие с github на sourceforge сильно старая версия.
Да, брала с sourceforge. С гитхаба чет из мастер ветки у меня не собралось.
А вот из девелопа - собралось) И не крашится) Большое спасибо!
У вас отличный проект! ^^
-
solomon78
It keep on crashing, unable to open.
I not clearly understand what are you talking about ?
svetlana
А на что сборка ветки мастер ругалась?
-
А на что сборка ветки мастер ругалась?
Концовочка такая:
linux64/release/obj/lritemscontainerdesignitf.o: In function `LimeReport::Segment::intersect(LimeReport::Segment)':
lritemscontainerdesignitf.cpp:(.text+0x90): multiple definition of `LimeReport::Segment::intersect(LimeReport::Segment)'
linux64/release/obj/lrbanddesignintf.o:lrbanddesignintf.cpp:(.text+0x970): first defined here
linux64/release/obj/lritemscontainerdesignitf.o: In function `LimeReport::Segment::intersectValue(LimeReport::Segment)':
lritemscontainerdesignitf.cpp:(.text+0xe0): multiple definition of `LimeReport::Segment::intersectValue(LimeReport::Segment)'
linux64/release/obj/lrbanddesignintf.o:lrbanddesignintf.cpp:(.text+0x9c0): first defined here
linux64/release/obj/lritemscontainerdesignitf.o: In function `LimeReport::itemSortContainerLessThen(QSharedPointer<LimeReport::ItemSortContainer>, QSharedPointer<LimeReport::ItemSortContainer>)':
lritemscontainerdesignitf.cpp:(.text+0x160): multiple definition of `LimeReport::itemSortContainerLessThen(QSharedPointer<LimeReport::ItemSortContainer>, QSharedPointer<LimeReport::ItemSortContainer>)'
linux64/release/obj/lrbanddesignintf.o:lrbanddesignintf.cpp:(.text+0xa40): first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:564: ../build/5.9.6/linux64/release/lib/liblimereport.so.1.0.0] Error 1
make[1]: Leaving directory '/home/snow/Downloads/LimeReport-master/limereport'
make: *** [Makefile:122: sub-limereport-make_first-ordered] Error 2
-
To Svetlana:
Посмотрите внимательно. Весьма похоже, что объектники от старой сборки остались