Não é possível carregar driver SQL no Visual C ++ (mas cargas em QtCreator)
-
08-07-2019 - |
Pergunta
Tenho uma aplicação QT que requer o driver do MySQL. Eu tenho tanto um arquivo .pro para compilar o aplicativo com QtCreator e uma .vcproj para o Visual C ++ 2008 Express. O código é idêntico e ele compila sem problemas, mas o executável criado pelo Visual C ++ Express me dá o seguinte resultado e se recusa a carregar qualquer driver / plugin:
QSqlDatabase: motorista QMYSQL não carregado QSqlDatabase: drivers disponíveis:
Eu costumava QCoreApplication para identificar o local onde os plugins são e parece que ambos os executáveis ??ter o mesmo caminho, então eles devem ver ambos os plugins. Um faz, e o outro não.
O código é padrão.
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("dbase");
db.setUserName("user");
db.setPassword("pwd");
bool ok = db.open();
A mesma coisa acontece com a amostra SQLBrowser que veio com QT, então eu não acho que o código é o problema.
Solução 2
Para qualquer outra pessoa que batido para este problema que eu tenho que dizer isso - é muito mais fácil de usar um dos pacotes contendo QT binários para Visual C ++ pré-construídos do que tentar construí-lo sozinho. E o motorista Qt (a versão 4.3 pelo menos) é terrivelmente difícil para chegar ao trabalho (em algumas máquinas que funciona como um encanto, mas em outros, ele não pode encontrar o driver, usando o mesmo código e binários), assim que você é muito melhor fora de usar uma biblioteca MySql dedicado.
Outras dicas
Eu enfrentei esse erro antes e não poderia fazê-lo funcionar até que eu percebi plug-in não foi construída utilizando a mesma configuração que a minha aplicação (debug vs liberação, doh!).