Impossibile caricare il driver SQL in Visual C ++ (ma si carica in QtCreator)
-
08-07-2019 - |
Domanda
Ho un'applicazione QT che richiede il driver MySql. Ho sia un file .pro per compilare l'app con QtCreator che un .vcproj per Visual C ++ 2008 Express. Il codice è identico e si compila senza intoppi, ma l'eseguibile creato da Visual C ++ Express mi dà il seguente output e rifiuta di caricare qualsiasi driver / plugin:
QSqlDatabase: driver QMYSQL non caricato QSqlDatabase: driver disponibili:
Ho usato QCoreApplication per identificare la posizione in cui si trovano i plugin e sembra che entrambi gli eseguibili abbiano lo stesso percorso, quindi dovrebbero entrambi vedere i plugin. Uno lo fa e l'altro no.
Il codice è standard.
QSqlDatabase db;
db = QSqlDatabase :: addDatabase (" QMYSQL ");
db.setHostName (" localhost ");
db.setPort (3306);
db.setDatabaseName (" dbase ");
db.setUserName (" utente ");
db.setPassword (" pwd ");
bool ok = db.open ();
La stessa cosa accade con l'esempio SqlBrowser fornito con QT, quindi non credo che il codice sia il problema.
Soluzione 2
Per chiunque abbia riscontrato questo problema, devo dire questo: è molto più facile usare uno dei pacchetti che contengono binari pre-compilati QT per Visual C ++ piuttosto che provare a crearlo da soli. E il driver Qt (almeno la versione 4.3) è terribilmente difficile da far funzionare (su alcune macchine funziona come un incantesimo ma su altre non riesce a trovare il driver, usando lo stesso codice e binari), quindi sei molto meglio usare una libreria MySql dedicata.
Altri suggerimenti
Ho già riscontrato questo errore e non sono riuscito a farlo funzionare fino a quando non ho realizzato che il plug-in non era stato creato utilizzando la stessa configurazione della mia applicazione (debug vs release, doh!).