Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Выполнение запросов с параметрами из диалога  (Read 5090 times)

svetlana

  • Newbie
  • *
  • Posts: 5
    • View Profile
Добрый день!
Хотела проконсультироваться по поводу выполнения запросов.
У меня следующая ситуация: я добавила в lime запрос, в котором есть некоторые условия для where из диалога, чтобы он не ворочал огромным количеством данных в БД.
Проблема вот в чем: у меня есть ощущение, что при открытии соединения, чтобы сформировать список полей, lime пытается выполнить запрос. Но так как параметров из диалога еще нет, он шерстит всю БД, а это занимает огромное количество времени. При этом также создается ощущение, что lime повторяет эту процедуру при рендере отчета. То есть еще до того, как вызовется диалог.
Скажите, пожалуйста, верны ли мои предположения и как можно с этим бороться?
« Last Edit: September 03, 2018, 01:23:28 pm by svetlana »

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Доброго времени суток!
А сам отчет глянуть можно? Не вполне понял "многослофф" :)

svetlana

  • Newbie
  • *
  • Posts: 5
    • View Profile
Вам xml-ку скинуть или что-то другое?

У меня просто получается, что в зависимости от БД, если в таблицах дофига значений, то соединение и рендер открываются очень долго. При этом все это происходит (видимо) до того, как в запрос приедут ограничения в where. Если же в БД значений умеренное количество, то отчет работает приемлемое количество времени.
« Last Edit: September 03, 2018, 06:45:15 pm by svetlana »

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
ну да, сам шаблон lrxml. База локальная или?
Оптимизировать запросы реально?

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Приветствую
Quote
Скажите, пожалуйста, верны ли мои предположения и как можно с этим бороться?
Для получения стуктуры полей лайм действительно выполняет запрос.
Если переменные запроса пустые то на сервер в запросе летит null и в некоторых случаях это способно доставить неудобства.
Ситуацию можно исправить инициализацией переменных запроса, тем самым уменьшив количество обрабатываемых данных.
Так же, можно не ставить галочку autoConnect для соединения и в этом случае лайм не будет лазить на сервер в процессе разработки отчета.

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


svetlana

  • Newbie
  • *
  • Posts: 5
    • View Profile
Подключаюсь к базе mysql. Отчет приложила.
При выключении автоконнекта отчет перестал делать запрос при запуске. И это хорошо.
Но я не очень поняла как:

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

Более того, после ввода данных в диалоге у меня крашится приложение с ошибкой сегментирования.
Не могли бы Вы что-то посоветовать? Я пробовала запускать Lime через .AppImage файл и бинарник после сборки. Но он крашится при любом раскладе. Запускаю на gentoo.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Quote
поменять порядок подготовки отчета к генерации и вызывать обновление данных после вызова скрипта
Это нужно сделать мне :)
Откуда берете исходники ? Если с sourceforge то попробуйте взять свежие с github на sourceforge сильно старая версия.

solomon78

  • Newbie
  • *
  • Posts: 24
    • View Profile
It keep on crashing, unable to open.

svetlana

  • Newbie
  • *
  • Posts: 5
    • View Profile
Quote
Если с sourceforge то попробуйте взять свежие с github на sourceforge сильно старая версия.

Да, брала с sourceforge. С гитхаба чет из мастер ветки у меня не собралось.
А вот из девелопа - собралось) И не крашится) Большое спасибо!
У вас отличный проект! ^^

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
solomon78
Quote
It keep on crashing, unable to open.
I not clearly understand what are you talking about ?

svetlana
А на что сборка ветки мастер ругалась?

svetlana

  • Newbie
  • *
  • Posts: 5
    • View Profile
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

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
To Svetlana:

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