DB-Connection an ein anderes Modul weitergeben

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Benutzeravatar
masterego
User
Beiträge: 12
Registriert: Mittwoch 15. Juni 2016, 16:41

hallo,
ich befinde mich in folgender Situation:
Meine Datenbank-Anwendung (MySQL) besteht aus 3 Modulen: Hauptmodul, ein Datenmodul mit etlichen Funktionen und ein Modul mit diversen Dialogen, die aus dem Hauptmodul aufgerufen werden. Einige der Dialoge im Dialog-(Sammel)Modul haben Ereignisprozeduren, die auf die DB zugreifen müssen.
Meine Frage: Wie kann ich diesem Dialog-Modul die bereits bestehende DB-Connection weitergeben? Und ist das überhaupt sinnvoll, oder sollte man die in der betreffenden Prozedur dieses Moduls jeweils bei Bedarf erstellen? Nur die Zugangsdaten müsste ich ja auch irgendwie an dieses Modul weitergeben können.
Ich habe versucht, die DB-Connection in eine globale Variable des Dialog-Moduls zu übertragen. Aus der Ereignisprozedur des Dialogs wird diese aber nicht gekannt. Warum?
BlackJack

@masterego: Man gibt Daten nicht an Module weiter sondern an Funktions- oder Methodenaufrufe. Übergib die Datenbankverbindung einfach als Argument.
Benutzeravatar
masterego
User
Beiträge: 12
Registriert: Mittwoch 15. Juni 2016, 16:41

Ja genau ;)
Das mache ich auch so mit dem anderen Modul, in dem ich meine ganzen Funktionen reingepackt habe. Klappt prima. das Problem bei dieser Sache ist nur, dass es eine ereignisgesteuerte Prozedur innerhalb des Dialogs ist, die die Datenverbindung benötigt. Und die kann ich ja nicht vom Hauptmodul aus mit dem Argument der Datenbankverbindung aufrufen. Deswegen weiss ich nicht weiter.
BlackJack

@masterego: Closures oder objektorientierte Programmierung (OOP). Wobei OOP in Python in der Regel die offensichtlichere Wahl ist.
Benutzeravatar
masterego
User
Beiträge: 12
Registriert: Mittwoch 15. Juni 2016, 16:41

Vielen Dank. Werde es mit beiden mal probieren. Bin sowieso nur am Rumspielen.
Antworten