Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распространение приложения, использующего QDB2 
:(
    Опции темы
niklep
Дата 6.4.2012, 06:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 9.5.2010

Репутация: нет
Всего: нет



Доброго времени суток. Прошу помощи.
Имеется написанное на Qt приложение, использующее драйвер QDB2. Приложение корректно функционирует на компьютере, на котором я ее разрабатывал. При переносе на другой компьютер возникли проблемы.
Для начала опишу структуру каталога с программой:
-TelephoneAuto.exe
-QtXml4.dll
-QtSql4.dll
-QtGui4.dll
-QtCore4.dll
-mingwm10.dll
-libgcc_s_dw2-1.dll
-sqldrivers\qsqldb24.dll

При такой структуре каталога при соединении с БД программа выдает ошибку: "Driver not loaded Driver not loaded". Для этой проблемы я нашел временное тупое решение, но все же... Я скопировал все dll'ки из каталога с установленной СУБД IBM DB2 в каталог моего приложения.
Но теперь при соединении с СУБД программа выдает ошибку с пустым содержанием. Т.е. в исходнике срабатывает ветка
Код
if (!db.open())...

но метод db.lastError().text() выдает пустую строку.
При этом также обратил внимание, что завершение приложения вешает программу (опять же, на машине разработчика все работало).
Привожу участки важного кода.
Соединение с БД:
Код

QSqlDatabase db = QSqlDatabase::addDatabase("QDB2");
db.setHostName(connDia.getHost());
db.setDatabaseName(connDia.getNameDb());
db.setUserName(connDia.getLogin());
db.setPassword(connDia.getPasswd());
if (!db.open())
    this->insertMess(QObject::tr("Ошибка соединения с БД: ") + db.lastError().text());
else {
    this->insertMess(QObject::tr("Соединение с БД установлено"));
    ...
}

Завершение приложения:
Код

void MainWindow::slotTerminateApp()
{
    QSqlDatabase db = QSqlDatabase::database();
    QMessageBox confirm;
    confirm.setText(QObject::tr("Подтверждение"));
    confirm.setInformativeText(QObject::tr("Завершить работу приложения?"));
    confirm.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
    confirm.setDefaultButton(QMessageBox::Ok);
    if (confirm.exec() == QMessageBox::Ok) {
        if (db.isOpen())
            db.close();
        app->exit();
    }
}

Прошу найти ошибку и добавить тем самым мне в башку знаний=)
P.S. в заголовочном файле этого класса переменной
Код

QSqlDatabase *db

нет
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.