Hallo
und zwar habe ich eine Anwendung die mit MySQL Daten aus der Datenbank holt und hat den SQL Driver als Plugin, nur wie sage ich meiner Anwendung wo der SqlDriver (die DLL) vorhanden ist?
Habe die DLL in mein Ordner gelegt wo meine .exe ist und auch probiert im system Ordner reinzumachen, aber es klappt nicht, er findet den Treiber nicht :/!
Auf dem Rechner wo ich mit Qt entwickel geht die Anwendung ja..
Programm auf mein anderen Rechner findet den SQLDriver nicht
-
Spielgrips
- Beiträge: 51
- Registriert: 8. März 2006 23:09
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Programm auf mein anderen Rechner findet den SQLDriver n
Aber dort liegt die sql-dll wohl in qtdir/plugins, oder? Soweit ich weiss müssen die plugins in exe-Directory/plugins liegen damit sie gefunden werden. Benutz einfach mal die Forums-SucheSpielgrips hat geschrieben: Auf dem Rechner wo ich mit Qt entwickel geht die Anwendung ja..
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Spielgrips
- Beiträge: 51
- Registriert: 8. März 2006 23:09
- Kontaktdaten:
Die Forum Suche habe ich ja genutzt! Sonst würde ich hier nicht posten! Ich habe den Ordner Plugins erstellt und alle Driver darein kopiert! Und trotzdem gehts netttt!
Zuletzt geändert von Spielgrips am 3. April 2006 17:40, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ok, mit den vielen '!' hast Du Dich für mich disqualifiziert.Spielgrips hat geschrieben:Die Forum Suche habe ich ja genutzt!!!! Sonst würde ich hier nicht posten! Ich habe den Ordner Plugins erstellt und alle Driver darein kopiert! Und trotzdem gehts netttt!
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Spielgrips
- Beiträge: 51
- Registriert: 8. März 2006 23:09
- Kontaktdaten:
Ich will hier keine Gefühle hören sondern wissen welchen Path er eigentlich absucht oder wo ich die .dll hinkopieren soll!? In der Dokumentation steht aber auch nix drüber, die leben wohl auf'm Mond! Die erklären nur wie man das Plugin erstellt, aber wie man es am besten einbinden soll wenn man auf ein anderen Rechner es aufruft!
-
Spielgrips
- Beiträge: 51
- Registriert: 8. März 2006 23:09
- Kontaktdaten:
Die Plguins-howto von Trolltech sollte es da doch tun, oder?
Besonders interessant
Besonders interessant
Es folgt, dass der Ordner in dem deine SQL-Plugin Libraries müsste sqldrivers heißen...QSqlDriverPlugin plugins/sqldrivers Case Sensitive
[...]
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.
[...]
The application can then call QCoreApplication::addLibraryPath() with this path and your plugins will be available to the application. Note that the final part of the path (e.g., styles) cannot be changed.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Ich habe es so gemacht .... jedoch habe ich es lieber mit statische libs zu arbeiten so kann die exe ueberal sein ohne andere dll ...
tips.... mit depends.exe => http://www.dependencywalker.com/ kann man rausfinden (oder raus greppen) welche dll das programm benutzt und kann so den installer bauen oder die dll mitgeben....
tips.... mit depends.exe => http://www.dependencywalker.com/ kann man rausfinden (oder raus greppen) welche dll das programm benutzt und kann so den installer bauen oder die dll mitgeben....
Code: Alles auswählen
/* in der main befor nur eine classe startet */
#if defined(Q_OS_WIN32 )
app.addLibraryPath( app.applicationDirPath() + "/namepfad");
/* die dll mussen also dort sein das andere Window$¤ darauf kommen */
/* ansonsten mit statische libs arbeiten ...*/
#endif
/* pro file => CONFIG += qt warn_on release #mac packt die plug-in ins app dir die locale jedoch nicht ... muss mal mit build static probieren...# */
#if defined( Q_WS_X11 )
QString transdir=PREFIX"/share/qt4ds_x11/locale/";
#endif
#if defined( Q_WS_MACX )
QString transdir="/Applications/qt4ds_mac.app/Contents/Resources/locale/";
#endif
#if defined(Q_WS_WIN)
QString transdir=QCoreApplication::applicationDirPath()+"/locale/";
#endif
/* other way install all locale to QString workdir = QString( "%1/.%2/" ).arg( QDir::homePath(), QUIKCONFIG ); */
/* best way build relase to put inside / CONFIG += qt warn_on release */
QString find = "qt4ds_" + QLocale::system().name().left(QLocale::system().name().indexOf("_"))+".qm";
QString fullpath = transdir + find;
QFileInfo fi( fullpath );
if ( !fi.exists() ) {
QMessageBox::warning( 0, "File error",
QString(" Cannot find translation file "+find+" for locale language: "+QLocale::system().name().left(QLocale::system().name().indexOf("_"))+
"\n Fullpath file is : "+fullpath+"\n insert file \""+find+"\" on subdir \""+transdir+"\" and all running ok!" )); //////
return 0;
}