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

Author Topic: Соединения с БД  (Read 6574 times)

rust

  • Newbie
  • *
  • Posts: 17
    • View Profile
Соединения с БД
« on: December 27, 2016, 04:09:37 PM »
При попытке проверки соединения с БД  зависает. и крешится.
rust@suse:~/develop/LimeReport-1.4/build/5.7.0/linux64/debug/designer> ./LRDesigner
Ошибка сегментирования (core dumped)

Версия LR 1.4.1
собранная на  openSUSE Leap 42.2

Code: [Select]
uname -a
Linux suse 4.4.36-8-default #1 SMP Fri Dec 9 16:18:38 UTC 2016 (3ec5648) x86_64 x86_64 x86_64 GNU/Linux

Никаких сообщений об ошибках нет. Драйвер Mysq рабочий.

[вложение удалено администратором]

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Соединения с БД
« Reply #1 on: December 27, 2016, 08:01:06 PM »
Повторить не удалось. Можете в режиме отладки посмотреть место в котором крашится ?

rust

  • Newbie
  • *
  • Posts: 17
    • View Profile
Re: Соединения с БД
« Reply #2 on: December 28, 2016, 09:37:14 AM »
Я могу ошибаться, но кажется крешится при работе с функцией OPENSSL_ia32_cpu_id.
Скрины прикрепил.

[вложение удалено администратором]
« Last Edit: December 28, 2016, 12:14:33 PM by rust »

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Соединения с БД
« Reply #3 on: December 28, 2016, 01:06:25 PM »
А соединение с БД не из LimeReport устанавливается ?

rust

  • Newbie
  • *
  • Posts: 17
    • View Profile
Re: Соединения с БД
« Reply #4 on: January 02, 2017, 10:40:28 PM »
Конечно, основной функционал программы с БД работает. А вот начал печатные формы делать, такая вот беда.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Соединения с БД
« Reply #5 on: January 04, 2017, 12:39:31 PM »
В LimeReport можно использовать дефолтное соединение с бд, которое установлено приложением. Хотя странно что LimeReport крашится на установлении соединения. Можете заслать демку как вы из приложения создаете соединение ?

aasavelev

  • Newbie
  • *
  • Posts: 8
    • View Profile
Re: Соединения с БД
« Reply #6 on: January 11, 2017, 06:55:03 PM »
Здравствуйте. Подскажите как из дизайнера подключиться к базе данных MYsql? Заполняю все данные и при этом не отображаются таблицы какие есть в бд. Мне кажется что нужно что указывать в поле Database. Во вложении рисунок с заполненными полями.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Соединения с БД
« Reply #7 on: January 11, 2017, 07:12:56 PM »
LimeReport на данный момент и не показывает таблицы которые есть в БД.
Вы можете проверить устанавливается соединение или нет кнопкой "Check connection"

rust

  • Newbie
  • *
  • Posts: 17
    • View Profile
Re: Соединения с БД
« Reply #8 on: January 12, 2017, 03:05:06 PM »
В LimeReport можно использовать дефолтное соединение с бд, которое установлено приложением. Хотя странно что LimeReport крашится на установлении соединения. Можете заслать демку как вы из приложения создаете соединение ?
Может я не понял вопрос. Но пока я использовал LM передавая ему значения переменных полученных из БД. Т.е использовал LM только в качестве рисовальшика печатной формы.

aasavelev

  • Newbie
  • *
  • Posts: 8
    • View Profile
Re: Соединения с БД
« Reply #9 on: January 12, 2017, 06:34:05 PM »
LimeReport на данный момент и не показывает таблицы которые есть в БД.
Вы можете проверить устанавливается соединение или нет кнопкой "Check connection"
Ок все понял. Нужно просто строить запрос и тогда отображается то что нужно.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Соединения с БД
« Reply #10 on: January 12, 2017, 06:49:35 PM »
rust, Я просто хотел посмотреть как вы соединение устанавливаете с БД из своего приложения и сравнить с тем как это делает LimeReport. 

aasavelev

  • Newbie
  • *
  • Posts: 8
    • View Profile
Re: Соединения с БД
« Reply #11 on: January 14, 2017, 07:30:15 AM »
В LimeReport можно использовать дефолтное соединение с бд, которое установлено приложением.

Подскажите как это реализовать?


Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Соединения с БД
« Reply #12 on: January 15, 2017, 11:17:28 AM »
При создании запроса в выпадающем списке соединений  доступно qt_sql_default_connection

rust

  • Newbie
  • *
  • Posts: 17
    • View Profile
Re: Соединения с БД
« Reply #13 on: January 18, 2017, 12:20:38 PM »
Вот мои подключения к БД

database.h

Code: [Select]
#ifndef DATABASE_H
#define DATABASE_H

#include <QtSql>
#include <QMessageBox>
#include <QString>

#define DATABASE_HOSTNAME   "10.28.8.78"
#define DATABASE_NAME       "cso"
#define DATABASE_USER       "csouser"
#define DATABASE_PASS       "SuP0rT"

static bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName(DATABASE_HOSTNAME);
    db.setDatabaseName(DATABASE_NAME);
    db.setUserName(DATABASE_USER);
    db.setPassword(DATABASE_PASS);

    if(!db.open()) {
        qDebug() <<  "Не возможно подключиться к базе данных." << endl << "Причина:" << db.lastError().text();
        QMessageBox::critical(0, qApp->tr("Не могу открыть базу данных"),
                              QString("Не могу установить соединение с базой данных\nПричина: %1").arg(db.lastError().text()),
                              QMessageBox::Cancel);
        return false;
    }
    return true;

}

#endif // DATABASE_H
main.cpp
Code: [Select]
#include "mainwindow.h"
#include "database.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTranslator *qt_translator = new QTranslator();
    if(qt_translator->load(":/Tr/qtbase_ru.qm"))
        a.installTranslator(qt_translator);

    if(!createConnection())
        return 1;

    MainWindow w;
    w.show();

    return a.exec();
}

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Соединения с БД
« Reply #14 on: January 20, 2017, 11:55:15 PM »
rust,
Что самое интересное LimeReport по сути делает тоже самое.
Code: [Select]
QSqlDatabase db = QSqlDatabase::addDatabase(connectionDesc->driver(),connectionDesc->name());
bool connected = false;
db.setHostName(replaceVariables(connectionDesc.host()));
db.setUserName(replaceVariables(connectionDesc.userName()));
db.setPassword(replaceVariables(connectionDesc.password()));
connected=db.open();

Почему валится совершенно не понятно.
Можете заслать пример отчета, который валится ?
И еще раз место в, котором прога крашится, а то я в процессе переезда на другого хостера все аттачи потерял :(