Zugriff auf Abfrageobjekt nur mit Debugger -> sonst Absturz

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Karsten Böhme
User
Beiträge: 86
Registriert: Sonntag 23. Dezember 2012, 07:54

Hallo miteinander,

ich arbeite gerade an einem DB-Projekt PyQT5 einer SQLite-DB und dem Pony-ORM. Nun ist folgendes Problem aufgetreten :

Eine Abfrage der Datenbank liefert 3 Zeilen zurück. Bisher habe ich im verwendeten TableWidget nur Zeilenzahl mit len(PonyResult) gesetzt. Das klappt im Debugger einwandfrei, sowohl im Einzelschritt-Modus, als auch ohne Braekpoints. Ohne Debugger stürzt das Programm bei Zugriff auf das Result-Objekt ab. Fehlernummer : -1073740791

Hat jemand eine Idee ? Hänge da seit 2 Tagen dran.

Grüße
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Karsten Böhme: Ein minimales aber lauffähiges Beispiel wäre hilfreich und die tatsächliche Fehlermeldung statt etwas Paraphrasiertem. Minimal hiesse auch das Du gleich mal testest was man aus der Gleichung nehmen kann. Also beispielsweise ob Qt überhaupt da mit rein spielt.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

@Karsten Böhme: „-1073740791“? Lass mich raten: PyCharm? Wenn ja: Starte das mal außerhalb von der IDE. PyCharm verschluckt Exceptions, die durch die Qt-Mainloop gehen.
Karsten Böhme
User
Beiträge: 86
Registriert: Sonntag 23. Dezember 2012, 07:54

Vielen Dank für Eure Hinweise,

PyCharm war richtig. Habe es jetzt gefunden. Hing mit der db_session zusammen. In der Tabelle war ein Element mit Lazy=True definiert. Als der Datensatz benötigt wurde war die Session schon beendet. Ohne Lazy=True funktioniert es. Warum es mit Debugger funktioniert hat, weiß ich immer noch nicht.

VG
Antworten