QT SQL Driver wird nicht geladen ??

Alles rund um die Programmierung mit Qt
mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

QT SQL Driver wird nicht geladen ??

Beitrag 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 ?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

Beitrag 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 .
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

mdmr hat geschrieben: Wie ich schon geschrieben hatte \plugins\sqldrivers"treiber" im Arbeitsverzeichniss.
Und jetzt nochmal auf Deutsch bitte...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

Beitrag 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 .
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dann geht es eben nur bei Dir nicht und bei allen anderen *lol*
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

Beitrag 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.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Was sagt denn der Debugger und was steht in der Ausgabe?

Errorstring?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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 ;)
mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

Beitrag 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.......
Antworten