LimeReport Forum

General Category | Основное => Discussion | Обсуждение => Topic started by: svetlana on September 03, 2018, 12:59:13 PM

Title: Выполнение запросов с параметрами из диалога
Post by: svetlana on September 03, 2018, 12:59:13 PM
Добрый день!
Хотела проконсультироваться по поводу выполнения запросов.
У меня следующая ситуация: я добавила в lime запрос, в котором есть некоторые условия для where из диалога, чтобы он не ворочал огромным количеством данных в БД.
Проблема вот в чем: у меня есть ощущение, что при открытии соединения, чтобы сформировать список полей, lime пытается выполнить запрос. Но так как параметров из диалога еще нет, он шерстит всю БД, а это занимает огромное количество времени. При этом также создается ощущение, что lime повторяет эту процедуру при рендере отчета. То есть еще до того, как вызовется диалог.
Скажите, пожалуйста, верны ли мои предположения и как можно с этим бороться?
Title: Re: Выполнение запросов с параметрами из диалога
Post by: Subst on September 03, 2018, 06:01:31 PM
Доброго времени суток!
А сам отчет глянуть можно? Не вполне понял "многослофф" :)
Title: Re: Выполнение запросов с параметрами из диалога
Post by: svetlana on September 03, 2018, 06:33:46 PM
Вам xml-ку скинуть или что-то другое?

У меня просто получается, что в зависимости от БД, если в таблицах дофига значений, то соединение и рендер открываются очень долго. При этом все это происходит (видимо) до того, как в запрос приедут ограничения в where. Если же в БД значений умеренное количество, то отчет работает приемлемое количество времени.
Title: Re: Выполнение запросов с параметрами из диалога
Post by: Subst on September 03, 2018, 06:58:06 PM
ну да, сам шаблон lrxml. База локальная или?
Оптимизировать запросы реально?
Title: Re: Выполнение запросов с параметрами из диалога
Post by: Arin Alex on September 04, 2018, 11:04:57 PM
Приветствую
Quote
Скажите, пожалуйста, верны ли мои предположения и как можно с этим бороться?
Для получения стуктуры полей лайм действительно выполняет запрос.
Если переменные запроса пустые то на сервер в запросе летит null и в некоторых случаях это способно доставить неудобства.
Ситуацию можно исправить инициализацией переменных запроса, тем самым уменьшив количество обрабатываемых данных.
Так же, можно не ставить галочку autoConnect для соединения и в этом случае лайм не будет лазить на сервер в процессе разработки отчета.

Перед построением отчета, действительно, обновляется состояние источников данных с целью их актуализации.
И это происходит, как Вы верно заметили, до исполнения инициализационного скрипта.
Я думаю, что будет целесообразным поменять порядок подготовки отчета к генерации и вызывать обновление данных после вызова скрипта.     

Title: Re: Выполнение запросов с параметрами из диалога
Post by: svetlana on September 05, 2018, 03:05:48 PM
Подключаюсь к базе mysql. Отчет приложила.
При выключении автоконнекта отчет перестал делать запрос при запуске. И это хорошо.
Но я не очень поняла как:

Quote
поменять порядок подготовки отчета к генерации и вызывать обновление данных после вызова скрипта

Более того, после ввода данных в диалоге у меня крашится приложение с ошибкой сегментирования.
Не могли бы Вы что-то посоветовать? Я пробовала запускать Lime через .AppImage файл и бинарник после сборки. Но он крашится при любом раскладе. Запускаю на gentoo.
Title: Re: Выполнение запросов с параметрами из диалога
Post by: Arin Alex on September 06, 2018, 09:23:56 PM
Quote
поменять порядок подготовки отчета к генерации и вызывать обновление данных после вызова скрипта
Это нужно сделать мне :)
Откуда берете исходники ? Если с sourceforge то попробуйте взять свежие с github на sourceforge сильно старая версия.
Title: Re: Выполнение запросов с параметрами из диалога
Post by: solomon78 on September 07, 2018, 12:41:58 PM
It keep on crashing, unable to open.
Title: Re: Выполнение запросов с параметрами из диалога
Post by: svetlana on September 07, 2018, 02:41:43 PM
Quote
Если с sourceforge то попробуйте взять свежие с github на sourceforge сильно старая версия.

Да, брала с sourceforge. С гитхаба чет из мастер ветки у меня не собралось.
А вот из девелопа - собралось) И не крашится) Большое спасибо!
У вас отличный проект! ^^
Title: Re: Выполнение запросов с параметрами из диалога
Post by: Arin Alex on September 09, 2018, 12:22:03 AM
solomon78
Quote
It keep on crashing, unable to open.
I not clearly understand what are you talking about ?

svetlana
А на что сборка ветки мастер ругалась?
Title: Re: Выполнение запросов с параметрами из диалога
Post by: svetlana on September 10, 2018, 12:14:03 PM
Quote
А на что сборка ветки мастер ругалась?

Концовочка такая:

Code: [Select]
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
Title: Re: Выполнение запросов с параметрами из диалога
Post by: Subst on September 10, 2018, 07:26:36 PM
To Svetlana:

Посмотрите внимательно. Весьма похоже, что объектники от старой сборки остались