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?
DB-Connection an ein anderes Modul weitergeben
@masterego: Man gibt Daten nicht an Module weiter sondern an Funktions- oder Methodenaufrufe. Übergib die Datenbankverbindung einfach als Argument.
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.
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.
@masterego: Closures oder objektorientierte Programmierung (OOP). Wobei OOP in Python in der Regel die offensichtlichere Wahl ist.