Как развернуть приложение QT (без статической привязки), использующее плагин ODBC? - PullRequest
3 голосов
/ 30 октября 2011

Мое приложение использует Qt SQL таким образом

QString servername = "SQL09.FreeMySQL.net";
QString dbname = "psiprobation";
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setConnectOptions();
QString dsn = QString("DRIVER={MySQL ODBC 5.1 Driver};SERVER=%1;DATABASE=%2;USER=jnchappell21;PASSWORD=XXXXXXX").arg(servername).arg(dbname);
db.setDatabaseName(dsn);

Я также включил это в свой код ...

a.addLibraryPath(a.applicationDirPath()+"/plugins");

Папка «plugins» содержит другую папку «sqldrivers». Внутри "sqldrivers" находятся myodbc5.dll, myobdc5S.dll, qsqlodbc4.dll и qsqlodbcd4.dll. (ПРИМЕЧАНИЕ: папка «plugins» находится в том же каталоге, что и исполняемый файл)

Теперь, когда наступил этап развертывания, приложение отлично работает в системе, где установлен Qt; однако в других системах (где QT не установлен) я не могу подключиться к базе данных, даже если приложение будет запущено (т.е. графический интерфейс пользователя открывается и отображается сообщение об ошибке).

Сообщение об ошибке: «[Microsoft] [ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию. QODBC3: Невозможно подключиться» *

Каково решение этой проблемы?

1 Ответ

1 голос
/ 30 октября 2011

Проблемы с отладочными плагинами в Qt могут быть проблемой. У меня никогда не было большого успеха, пытаясь принудительно определить местоположение плагина, используя addLibraryPath(). Прежде чем я выяснил причину, я обнаружил, что приложения Qt будут искать в корне приложения каталог «leaf» соответствующего типа плагина. В вашем случае просто поместите каталог sqldrivers в корень приложения (не вкладывая его в каталог plugins).

Один из способов попытаться определить, действительно ли у вас возникла проблема с расположением плагинов, попытаться переместить файлы драйвера из их расположения на компьютере разработчика (или переименовать их) и проверить, не возникает ли такая же ошибка.

Несмотря на то, что они направлены на плагины виджетов, на этой странице есть несколько подсказок по устранению неисправностей плагина .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...