Hi,
ich habe hier ein Problem und weiss einfach nicht mehr weiter.
Ich benutze qtsql aus pyqt.
Ich kann mich zur Datenbank connecten. Ich habe ein query erstellt und rufe mit exec_ ein SELECT-statement auf. Wenn ich nun den query untersuche sehe ich,
dass isSelect und ist isActive true sind
aber isValid ist false.
Wenn ich nun mit first() auf den ersten Eintrag gehen will wird mir ein false zurückgegeben. Ich kann einfach nicht auf die Einträge zugreifen.
Wenn ich size() benutze wird mir eine 2 zurückgegeben was richtig ist.
Hat jemand eine Idee?
Güße,
Marc
Probleme mit QTSQL (PyQT)
Hier ein Ausschnitt aus dem Code. Evtl bin ich auch einfach nur zu doof.
db = QSqlDatabase.addDatabase("QMYSQL");
db.setHostName("Blah@BLah.de")
db.setDatabaseName("BSP")
db.setUserName("USR")
db.setPassword("PSW")
db.open()
query = QSqlQuery(db)
query.exec_('SELECT name FROM monkey)
query.isSelect()
query.first()
x = query.value(1)
db = QSqlDatabase.addDatabase("QMYSQL");
db.setHostName("Blah@BLah.de")
db.setDatabaseName("BSP")
db.setUserName("USR")
db.setPassword("PSW")
db.open()
query = QSqlQuery(db)
query.exec_('SELECT name FROM monkey)
query.isSelect()
query.first()
x = query.value(1)
- noisefloor
- User
- Beiträge: 4149
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ich nutzte zwar kein QtSQL, aber lt. Doku kann das IMHO auch so nicht funktionieren.
query.value(1) setzt den Feldindex auf das 2. Feld (der Index ist, wie bei Python üblich, Null-basiert), dein Query hat aber nur ein Feld (nämlich "name").
Doku
Gruß, noisefloor
ich nutzte zwar kein QtSQL, aber lt. Doku kann das IMHO auch so nicht funktionieren.
query.value(1) setzt den Feldindex auf das 2. Feld (der Index ist, wie bei Python üblich, Null-basiert), dein Query hat aber nur ein Feld (nämlich "name").
Doku
Gruß, noisefloor
Oh, das habe ich vergessen dazu zu schreiben. Ich habe es auch schon mit value(0) versucht. Beim rumprobieren war jetzt gerade nur auf 1. Funktioniert aber beides nicht. Ich scheine den query nicht auf einen valid record setzen zu können. Ist sehr merkwürdig. Wenn ich
query.first()
benutze und dann
query.isValid()
bekomme ich auch an false.
query.size()
gibt aber eine 2 zurück. Es ist also was da.
query.first()
benutze und dann
query.isValid()
bekomme ich auch an false.
query.size()
gibt aber eine 2 zurück. Es ist also was da.
- noisefloor
- User
- Beiträge: 4149
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
kannst du dir nicht mal das "rohe" Resultat ausgeben lassen ( query.result() ?) ?
Gruß, noisefloor
kannst du dir nicht mal das "rohe" Resultat ausgeben lassen ( query.result() ?) ?
Gruß, noisefloor