Seite 1 von 2

QT SQL Driver wird nicht geladen ??

Verfasst: 14. Mai 2010 22:43
von mdmr
Hab eine Anwendung auf einem Zielrechner mit QT SQL ,
Fehlermeldung: SQL Driver not Loadet.
Da wo Qt Installiert ist läuft es.
SQL = MS SQL /ODBC

Hab mittlerweile alle QT dll aus ...\qt\bin auf das Zielsystem kopiert(system 32), auch qt\plugin\sqldrivers.

Dazu nochmal alles ins Anwendungsverzeichniss ^^ .

Und im Anwendungsverzeichniss \plugins\sqldrivers\"treiber" und zur Sicherheit nochmal im Anwendungsverzeichnis \sqldrivers\"treiber".


DependencyWalker von QR sagt
Kein SQL Treiber verfügbar,
wintab32.dll fehlt, nur kommt die weder von Qt noch von MS , auch hab ich die auf dem entwicklungssystem nicht, ob die wintab32 damit was zu tun hat weiß ich nicht.

in der .pro Datei ist QT += sql eingetragen.

Einer eine Idee ?

Verfasst: 15. Mai 2010 08:24
von franzf

Verfasst: 15. Mai 2010 13:40
von mdmr
Ja, das hab ich gelesen.

Deswegen hab ich ja die beiden Unterordner erstellt in appdir/plugins und sql driver.

Irgendwie ist die Anwendung nur dazu zu bewegen die plugins, in dem Fall die SQL Treiber, zu laden wenn sie im gleichen Pfad liegen wie am Entwicklungsrechner.

Verfasst: 15. Mai 2010 16:32
von Christian81
Das Verzeichnis muss sqldrivers heissen!
Und wenn das sql-Plugin noch andere libs als Dependencies braucht und du sie nicht mitlieferst kann es nichts werden -> mit Dependency Walker was das Plugin braucht.

Verfasst: 15. Mai 2010 17:59
von mdmr
Christian81 hat geschrieben:Das Verzeichnis muss sqldrivers heissen!
Und wenn das sql-Plugin noch andere libs als Dependencies braucht und du sie nicht mitlieferst kann es nichts werden -> mit Dependency Walker was das Plugin braucht.
Wie ich schon geschrieben hatte \plugins\sqldrivers"treiber" im Arbeitsverzeichniss.
Und mittlerweile liegen alle qt dll auf dem Zielrechner , weitere Plugins werden nicht benötigt.
Lege ich die Plugings unter den gleichen Pfad wo sie beim PC liegen wo ich Compiliere klappt alles .

Verfasst: 15. Mai 2010 18:11
von Christian81
mdmr hat geschrieben: Wie ich schon geschrieben hatte \plugins\sqldrivers"treiber" im Arbeitsverzeichniss.
Und jetzt nochmal auf Deutsch bitte...

Verfasst: 15. Mai 2010 18:57
von mdmr
Christian81 hat geschrieben:
mdmr hat geschrieben: Wie ich schon geschrieben hatte \plugins\sqldrivers"treiber" im Arbeitsverzeichniss.
Und jetzt nochmal auf Deutsch bitte...
Verstehe jetzt nicht was du meinst ,
ich habe im Arbeitsverzeichnis des Programms den Ordner Plugins erstellt und in diesem Ordner den Ordner sqldrivers in welchem die Treiber liegen.
Zur Sicherheit nochmal im Arbeitsverzeichnis des Programms den Ordner sqldrivers.

Lege ich die Treiber jedoch in genau den gleichen Pfad wie auf dem System wo ich kompiliere c:\qtdir\plugins\sqldrivers klappt es.

So langsam frage ich mich überhaupt ob das mit QT für Produktivumgebungen geignet ist .

Für die Verbindung:
db->setDatabaseName(QString("DRIVER={SQL Server Native Client 10.0};SERVER=%1;DATABASE=%2;Uid=%3;Pwd=%4").arg(daten->getSserver()).arg(daten->getSdata()).arg(daten->getSname()).arg(daten->getSpass()));

ist nicht das gleiche wie =
db->setDatabaseName("DRIVER={SQL Server Native Client 10.0};SERVER=Lappi\\SQLexpress;DATABASE=ipwd;Uid=user;Pwd=pass");

und auch die Version :

QString vstring;
vstring.push_back("DRIVER={SQL Server Native Client 10.0};SERVER=");
vstring.push_back(daten->getSserver());
vstring.push_back(";DATABASE=");
vstring.push_back(daten->getSdata());
vstring.push_back(";Uid=");
vstring.push_back(daten->getSname());
vstring.push_back(";Pwd=");
vstring.push_back(daten->getSpass());
QMessageBox::information(0,"Fehler",vstring);
db->setDatabaseName(vstring);
Führt zu keinem Ergebniss , obwohl mir die Mesagebox voher den richtigen String ausgibt.

Auch über den DSN :

db->setHostName(daten->getSserver());
db->setDatabaseName(daten->getSdata());
if(daten->getBcred()){
db->setUserName(daten->getSname());
db->setPassword(daten->getSpass());

scheint keine Verbindung möglich nur vom Rechner wo der SQL läuft.

Die einzige Funktionierende Version ist die zweite= db->setDatabaseName("DRIVER={SQL Server Native Client 10.0};SERVER=Lappi\\SQLexpress;DATABASE=ipwd;Uid=user;Pwd=pass");
Was für die Praxis nicht geeignet ist.

Vom MAc scheint überhaupt keine Verbindung zum MS SQL Möglich zu sein mit QT.

Verfasst: 15. Mai 2010 19:21
von Christian81
Wenn im Verzeichnis in dem das executable liegt ein der Ordner sqldrivers vorhanden ist (und darin das entsprechende Plugin) dann funktioniert es auch. Hat franzf aber schon im zweiten Post gesagt.

Verfasst: 15. Mai 2010 19:36
von mdmr
Christian81 hat geschrieben:Wenn im Verzeichnis in dem das executable liegt ein der Ordner sqldrivers vorhanden ist (und darin das entsprechende Plugin) dann funktioniert es auch. Hat franzf aber schon im zweiten Post gesagt.
Nein tut es nicht, hatt ich auch geschrieben.

Sonst hätte ich das Topic nicht eröffnet, wenn ich mich nicht schon durch die DOKU gearbeitet .

Verfasst: 15. Mai 2010 19:47
von Christian81
Dann geht es eben nur bei Dir nicht und bei allen anderen *lol*

Verfasst: 15. Mai 2010 19:56
von mdmr
Christian81 hat geschrieben:Dann geht es eben nur bei Dir nicht und bei allen anderen *lol*
Danke für deinen Konstruktiven und wichtigen Beitrag.

Wenn du keine Lußt hast dich mit Problemstellung auseinander zu setzten, solange es nicht über RTFM und "Google dir einen " hinausgeht, antworte doch auf keine Topics.

Aber Topic kann eigentlich zu.

War ein Versuch mit QT sich die Arbeit 2 x zu machen für MAC und MS Clients, aber anscheinend funktioniert das noch nicht alles wirklich mit Qt.

Software > Qt > Deinstallieren.

Visual STudio mit MFC und XCOde an, das funktioniert,und ist gut Dokumentiert.

Verfasst: 15. Mai 2010 20:02
von AuE
Was sagt denn der Debugger und was steht in der Ausgabe?

Errorstring?

Verfasst: 15. Mai 2010 22:12
von Christian81
mdmr hat geschrieben:
Christian81 hat geschrieben:Dann geht es eben nur bei Dir nicht und bei allen anderen *lol*
Danke für deinen Konstruktiven und wichtigen Beitrag.
Bitte - schreib ein kleines Testprogramm und wir werden sehen dass es geht. Und da es angeblich nur bei dir nicht funktioniert und du lernresistent bist... viel Spass mit MFC

Verfasst: 15. Mai 2010 22:28
von AuE
ich würde die finger von der mfc etc lassen wenn auf mehr OS gehen willst.. qt -> src auf der plattform auschecken qmake && make und es geht einfach ;)

Verfasst: 16. Mai 2010 13:25
von mdmr
Christian81 hat geschrieben:
mdmr hat geschrieben:
Christian81 hat geschrieben:Dann geht es eben nur bei Dir nicht und bei allen anderen *lol*
Danke für deinen Konstruktiven und wichtigen Beitrag.
Bitte - schreib ein kleines Testprogramm und wir werden sehen dass es geht. Und da es angeblich nur bei dir nicht funktioniert und du lernresistent bist... viel Spass mit MFC
Ich brauch kein Testprogramm schreiben, da ich schon ein Programm geschrieben habe, was genau so nicht Funktioniert wie im Manual beschrieben bei den sqltreibern.
Und Lernresistent bin ich mit Sicherheit nicht, scheinbar bist du aber Leseresistent .......

Und um das nochmal auf den Punkt zu bringen QT war ein Ansatz sich die Arbeit zu sparen mit 2 Frameworks zu arbeiten. Wenn bei solch Trivialen Dingen aber schon die Informationsbeschaffung scheitert wie soll das bei komplexen Dingen erst aussehen.

Einfache Dinge wie die Bereitstellung, für den String der zum SQL geht Variablen zu verwenden oder mit dem MAC am MS SQL sich zu Auhtentifizieren scheitern und scheinen nicht lösbar.

Sorry aber das ist nicht Praxistauglich. MFC funktioniert super und Informationsbeschaffung funktioniert auch dazu wesentlich umfangreicher und kostet einen Bruchteil von QT.

Und wenn ich zu dem Thema Google schein ich nicht der Einzige zu sein bei dem das mit den SQL Treibern nicht klappt....

Also Thema kann zu und Forenacount bitte löschen.......