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

Author Topic: Не подключается к MsSQL Express 2005  (Read 3977 times)

aasavelev

  • Newbie
  • *
  • Posts: 8
    • View Profile
Не подключается к MsSQL Express 2005
« on: June 28, 2016, 01:19:55 PM »
Здравствуйте. Скачал демо вашего генератор отчетов пробую подключиться к MsSQL Express. Он выдает ошибку "Источник даннных не найден или не найден драйвер, используемый по умолчанию QODBC3". Что с делано не так? Окно настройки подключения во вложении.

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

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Не подключается к MsSQL Express 2005
« Reply #1 on: June 29, 2016, 10:50:08 PM »
Для подключения через ODBC нужно сначала настроить DSN в "Администраторе источников данных ODBC" и потом при настройке подключения в LimeReport использовать имя DSN в поле "database"

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

aasavelev

  • Newbie
  • *
  • Posts: 8
    • View Profile
Re: Не подключается к MsSQL Express 2005
« Reply #2 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
Подскажите что я делаю не так.

[вложение удалено администратором]
« Last Edit: July 06, 2016, 06:46:36 AM by aasavelev »

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Не подключается к MsSQL Express 2005
« Reply #3 on: July 06, 2016, 12:15:30 PM »
LimeReport сами собирали или использовали готовую dll ?
Похоже имеем следующую ситуацию.
В первом случае:
Quote
unix|win32: LIBS += -L$$PWD/LimeReport/ -llimereport
Судя по подключению вы используете одну и туже dll для отладки и релиза. Релизная dll валится в отладочном режиме.
Во втором:
Приложение просто не находит файл отчета.
Поскольку приложение собирается и запускается в отдельной папке, а файл отчета в неё не перекладывается.
PS:
Если createPreviewWidget() вызвать непосредственно перед show(), то refreshPages() можно не вызывать
   
 

aasavelev

  • Newbie
  • *
  • Posts: 8
    • View Profile
Re: Не подключается к MsSQL Express 2005
« Reply #4 on: July 06, 2016, 12:45:33 PM »
Quote
LimeReport сами собирали или использовали готовую dll ?
Сам собирал, через QtCreator.

Quote
Во втором:
Приложение просто не находит файл отчета.
Поскольку приложение собирается и запускается в отдельной папке, а файл отчета в неё не перекладывается.
Если я ложу файл отчета то он вываливается в туже самую ошибку.

aasavelev

  • Newbie
  • *
  • Posts: 8
    • View Profile
Re: Не подключается к MsSQL Express 2005
« Reply #5 on: July 06, 2016, 01:24:50 PM »
Вот какую ошибку я увидел:
Quote
terminate called after throwing an instance of 'LimeReport::ReportError'
  what():  datasource with name "РџРѕРґРїРёСЃРё" already exists !

aasavelev

  • Newbie
  • *
  • Posts: 8
    • View Profile
Re: Не подключается к MsSQL Express 2005
« Reply #6 on: July 06, 2016, 02:57:53 PM »
Со всеми проблемами я разобрался. Собрал по отдельности библиотеки для Debug и Release. Подключил их. В отчете удалил DataSource. И все заработало. Спасибо.