Я разрабатываю приложение в QT 5.4, которое подключается к DB Postgre. При запуске приложения в режиме выпуска внутри QT Creator соединение работает нормально. Однако, когда я добавляю зависимости .exe и открываю его, я всегда получаю ошибку подключения. Я добавил QT5Sql.dll в каталог выпуска и все остальные необходимые зависимости в зависимости от хоста зависимостей.Созданный QT exe не может подключиться к базе данных PostrgreSQL
Может ли кто-нибудь сказать мне, что я делаю неправильно?
ui->setupUi(this);
finishedGame = false;
ui->detener->setVisible(false);
ui->labelEnCurso->setVisible(false);
db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("MYDB");
db.setUserName("USER");
db.setPassword("PASS");
bool ok = db.open();
if(!ok){
QMessageBox msgBox;
msgBox.setText("Connection ERROR");
msgBox.exec();
}
UPDATE
Я проверил EXE-файл с DebugView и это ошибка, я получаю:
[10876] QSqlDatabase: QPSQL driver not loaded
[10876] QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
У меня есть как libpq.dll и qsqlpsql.dll на мой релиз, однако по какой-то причине приложение не может загрузить соответствующие драйверы, хотя оно говорит, что оно доступно.
У вас есть каталог 'sqldrivers' с соответствующим .dll для PostgreSQL? Его можно найти в каталоге 'plugins' вашей установки Qt. Вы также можете попробовать [DebugView] (https://technet.microsoft.com/en-us/library/bb896647.aspx), чтобы узнать, что случилось. – AdrianEddy
Спасибо. Я уже добавил sqldrivers. Но я попробую DebugView out :) –
Вы также можете установить переменную среды 'QT_DEBUG_PLUGINS = 1' и проверить вывод в DebugView – AdrianEddy