Seite 1 von 1
[PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 14:28
von lackschuh
Hallo
Ich versuch gerade mittels Modul QtSql eine Verbindung zu einer sqlite3 DB aufzubauen:
Code: Alles auswählen
from PyQt4.QtSql import (QSqlDatabase, QSqlQuery, QSqlRelation,
QSqlRelationalDelegate, QSqlRelationalTableModel)
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("personenverwaltung.db")
db.open()
Leider erhalte ich folgende Fehlermeldung:
Code: Alles auswählen
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
Unter C:\Python27\Lib\site-packages\PyQt4\plugins\sqldrivers sind bei mir folgende 4 .dll Dateien:
- qsqlite4.dll
- qsqlmysql4.dll
- qsqlodbc4.dll
- qsqlpsql4.dll
Wo könnte das Problem liegen?
Ich nutze Eclipse+PyDev.
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 14:42
von BlackJack
@lackschuh: Die Fehlermeldung ist IMHO *sehr* deutlich.
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 15:28
von lackschuh
Hallo
Auch wenn ich fertige Beispielprogramme versuche zu öffnen, kommt die Meldung.
Wenn ich im obigen Beispiel davor noch
einfüge, kommt die Meldung, dass das Laden des Treibers fehlgeschlagen ist. Zwar kommt dann die Instanzmeldung nicht mehr, der Rest bleibt gleich...
mfg
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 15:46
von deets
Bitte die *genaue* Fehlermeldung.
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 15:49
von lunar
Und bitte auch vollständigen Quelltext zu dieser Fehlermeldung.
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 16:00
von lackschuh
Hallo
Die Ursache muss wohl an meinem System liegen, denn Zuhause funktioniert alles super. Habs gerade getestet.
Ein einfaches Beispiel:
Code: Alles auswählen
from PyQt4.QtSql import QSqlQueryModel,QSqlDatabase,QSqlQuery
from PyQt4.QtGui import QTableView,QApplication
import sys
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("personenverwaltung.db")
db.open()
projectModel = QSqlQueryModel()
projectModel.setQuery("SELECT * FROM person",db)
projectView = QTableView()
projectView.setModel(projectModel)
projectView.show()
app.exec_()
Geht auf dem einen Rechner und auf dem anderen geht es nicht mehr. Die genaue Fehlermeldung habe ich oben schon gepostet. Mehr wird mir nicht angezeigt. Ich weiss nicht, ob es damit zusammenhängt, dass ich erst kürzlich PySide mittels Deinstaller runter geschmissen habe oder sonst was gelöscht/verstellt habe...
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 16:22
von lunar
@lackschuh Die Fehlermeldung Deines ersten Beitrags erhältst Du, weil Du kein "QApplication"-Exemplar erzeugt hast. Wir würden gerne noch die Fehlermeldung sehen, die Du
mit einem solchen Exemplar, sprich mit dem Quelltext Deines letzten Beitrags, erhältst.
Ansonsten bleibt uns nur, festzustellen, dass die Datenbanktreiber von Qt nicht installiert sind. Woran das liegt, lässt sich nur sagen, wenn Du uns beschreibst, wie Du PyQt installiert, und was Du bei Deinem Aufräumversuchen alles gelöscht hast.
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 16:45
von lackschuh
Hi, erst mal danke für die Inputs.
Folgende Fehlermeldung kommt beim obigen Code:
Code: Alles auswählen
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
QSqlQuery::exec: database not open
PySide habe ich mittels WinInstaller (msi) installiert und dann mit RevoUninstaler deinstalliert.
PyQt4 habe ich auch mittels Windows Installer installiert.
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 17:06
von lunar
@lackschuh Bitte installiere PyQt erneut, um sicherzustellen, dass Deine Aufräumaktion bezüglich PySide die PyQt-Installation nicht beschädigt hat. Dann lasse Dir in Deinem Programm bitte "QApplication.libraryPaths()" und "QSqlDatabase.drivers()" ausgeben.
Was ist der RevoUninstaller? Wieso verwendest Du zur Deinstallation von Programmen nicht die eingebaute Funktionalität von Windows?
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 17:32
von lackschuh
Hallo
Ich installiere PyQt morgen neu und probiere es aus und melde mich dann wieder.
Revo Uninstaller ist ein Uninstall-Tool, dass auch die Registry-Einträge entfernt.
Als ich PySide installiert hab, funktionierten sämtliche PyQt-Skripte nicht mehr. In Eclipse war fast alles rot. Sachen wie zB QTableView() wurden nicht mehr erkannt. Nach dem deinstallieren ging es wieder, ausser halt SQL. Aber ich installiere es neu.
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Montag 27. August 2012, 17:50
von lunar
@lackschuh Welche Registry-Einträge?
So wie ich die
Beschreibung auf der Website gelesen habe,
rät das Programm, welche Daten eine Anwendung
möglicherweise hinterlassen haben
könnte, und entfernt diese dann einfach, ohne zu prüfen, ob diese Daten tatsächlich entfernt dürfen, und nicht beispielsweise von einem anderen Programm noch benötigt werden. Es darf Dich nicht wundern, dass Dein System (oder Teile davon) sich unerwartet verhält, wenn Du ein solches Programm verwendest. Nicht auszuschließen, dass die Deinstallation von PySide mithilfe dieses Programms auch Teile Deiner PyQt-Installation entfernt hat.
Re: [PyQt4] SQL-Verbindungsproblem
Verfasst: Dienstag 28. August 2012, 06:43
von lackschuh
Hallo
Hab nun PyQt neu installiert und nun geht es wieder. Vielen Dank.