Seite 1 von 1

QtSql: Nach Kopieren auf Zielrechner keine Driver gefunden

Verfasst: 27. Februar 2007 12:58
von gerome69
Hallo zusammen,
ich habe ein Programm geschrieben, daß u.a. Daten von einem MySQL-Server holt.
Auf dem Rechner auf dem ich es kompiliert habe, läuft es auch einwandfrei.

Code: Alles auswählen

dbConn=QSqlDatabase::addDatabase("QODBC");
dbConn.setDatabaseName("DRIVER={SQL Server};SERVER=XXXX;DATABASE=XXX;");
dbConn.setUserName("XXX");
dbConn.setPassword("XXX");
if (!dbConn.open()) throw QString("Database error: " + dbConn.lastError().text());
Wenn ich es aber auf einen Fremdrechner kopiere, kommt als Fehler:
"QODBC driver not loaded.
Available drivers: "
Sprich: keine.

Was ich dort mit ins gleiche Verzeichnis kopiert habe sind inzwischen alle dll's aus dem QTDIR\bin, dann aus "qsqlodbc.dll" aus dem plugins\sqldrivers und schließlich habe ich nochmal testweise den ganzen "plugins"-Ordner rüberkopiert.
Sicher viel zu viel, aber es geht immer noch nicht. Es werden keine Treiber gefunden.

Was fehlt mir denn da noch?

Danke für Tips, Bernd

Verfasst: 27. Februar 2007 13:49
von abelmi
Probiere mal die plugins nicht unter \plugins\sqldrivers, sondern direkt unter \sqldrivers relativ zu deiner Anwendung zu kopieren.

Mit QCoreApplication::setLibraryPaths() kannst du den Pfad setzen, wenn dieser abweicht. Mit QCoreApplication::applicationDirPath() kannst du dir den aktuellen Pfad deiner Anwendung geben lassen.

Verfasst: 27. Februar 2007 13:59
von gerome69
abelmi hat geschrieben:Probiere mal die plugins nicht unter \plugins\sqldrivers, sondern direkt unter \sqldrivers relativ zu deiner Anwendung zu kopieren.
Danke, das war's. Da soll mal einer drauf kommen. Stand in der Doku nicht oder ich hab's überlesen.

Gruß, Bernd

Verfasst: 27. Februar 2007 14:59
von Christian81
gerome69 hat geschrieben: Danke, das war's. Da soll mal einer drauf kommen. Stand in der Doku nicht oder ich hab's überlesen.
Überlesen (wobei es wirklich versteckt steht)
But where is the plugins directory? When the application is run, Qt will first treat the application's executable directory as the pluginsbase. For example if the application is in C:\Program Files\MyApp and has a style plugin, Qt will look in C:\Program Files\MyApp\styles