LimeReport Forum

General Category | Основное => Discussion | Обсуждение => Topic started by: aasavelev on June 28, 2016, 01:19:55 PM

Title: Не подключается к MsSQL Express 2005
Post by: aasavelev on June 28, 2016, 01:19:55 PM
Здравствуйте. Скачал демо вашего генератор отчетов пробую подключиться к MsSQL Express. Он выдает ошибку "Источник даннных не найден или не найден драйвер, используемый по умолчанию QODBC3". Что с делано не так? Окно настройки подключения во вложении.

[вложение удалено администратором]
Title: Re: Не подключается к MsSQL Express 2005
Post by: Arin Alex on June 29, 2016, 10:50:08 PM
Для подключения через ODBC нужно сначала настроить DSN в "Администраторе источников данных ODBC" и потом при настройке подключения в LimeReport использовать имя DSN в поле "database"

[вложение удалено администратором]
Title: Re: Не подключается к MsSQL Express 2005
Post by: aasavelev on July 06, 2016, 06:10:03 AM
Спасибо. Подключился, отчет сделал. Только когда подключаю его в своей запускаю на выполнение, пытаюсь распечатать  отчет и появляется ошибка(Окно с ошибкой во вложении).

Код выполнения отчета:
Code: [Select]
LimeReport::ReportEngine *m_report = new LimeReport::ReportEngine(0);
    LimeReport::PreviewReportWidget* m_preview = m_report->createPreviewWidget();   
    QSqlQueryModel QueryModel;// = new QSqlQueryModel();
    QString Sql= QString::fromUtf8("SELECT    ROW_NUMBER() OVER(ORDER BY Сотрудники.ФИОСотрудника ASC) AS 'Номер', Сотрудники.ФИОСотрудника,Подписи.Дата");
    Sql.append(QString::fromUtf8("FROM Подписи RIGHT OUTER JOIN Сотрудники ON Подписи.ИдСотрудника = Сотрудники.ИдСотрудника"));
    Sql.append(QString::fromUtf8("WHERE (Подписи.ИдДокумента = %1) OR (Подписи.ИдДокумента IS NULL)").arg(Index.sibling(Index.row(),0).data(Qt::DisplayRole).toInt()));
    Sql.append(QString::fromUtf8("ORDER BY Сотрудники.ФИОСотрудника"));
    QueryModel.setQuery(Sql, Db);
    m_report->dataManager()->addModel(QString::fromUtf8("Подписи"),&QueryModel ,true);
    m_report->dataManager()->setReportVariable(QString::fromUtf8("Наименование документа"),Index.sibling(Index.row(),1).data(Qt::DisplayRole).toString());
    m_report->loadFromFile(QApplication::applicationDirPath()+QString::fromUtf8("/Template/ЛистОзнакомления.lrxml"));
    m_preview->refreshPages();
    m_preview->show();

Ошибка возникает на первой строчке(проверил в Debug режиме). Если запустить не в Debug, то открывается пустое окно.
Подключение библиотеки осуществляю так:
Code: [Select]
unix|win32: LIBS += -L$$PWD/LimeReport/ -llimereport

INCLUDEPATH += $$PWD/LimeReport
DEPENDPATH += $$PWD/LimeReport
Подскажите что я делаю не так.

[вложение удалено администратором]
Title: Re: Не подключается к MsSQL Express 2005
Post by: Arin Alex on July 06, 2016, 12:15:30 PM
LimeReport сами собирали или использовали готовую dll ?
Похоже имеем следующую ситуацию.
В первом случае:
Quote
unix|win32: LIBS += -L$$PWD/LimeReport/ -llimereport
Судя по подключению вы используете одну и туже dll для отладки и релиза. Релизная dll валится в отладочном режиме.
Во втором:
Приложение просто не находит файл отчета.
Поскольку приложение собирается и запускается в отдельной папке, а файл отчета в неё не перекладывается.
PS:
Если createPreviewWidget() вызвать непосредственно перед show(), то refreshPages() можно не вызывать
   
 
Title: Re: Не подключается к MsSQL Express 2005
Post by: aasavelev on July 06, 2016, 12:45:33 PM
Quote
LimeReport сами собирали или использовали готовую dll ?
Сам собирал, через QtCreator.

Quote
Во втором:
Приложение просто не находит файл отчета.
Поскольку приложение собирается и запускается в отдельной папке, а файл отчета в неё не перекладывается.
Если я ложу файл отчета то он вываливается в туже самую ошибку.
Title: Re: Не подключается к MsSQL Express 2005
Post by: aasavelev on July 06, 2016, 01:24:50 PM
Вот какую ошибку я увидел:
Quote
terminate called after throwing an instance of 'LimeReport::ReportError'
  what():  datasource with name "РџРѕРґРїРёСЃРё" already exists !
Title: Re: Не подключается к MsSQL Express 2005
Post by: aasavelev on July 06, 2016, 02:57:53 PM
Со всеми проблемами я разобрался. Собрал по отдельности библиотеки для Debug и Release. Подключил их. В отчете удалил DataSource. И все заработало. Спасибо.