Zugriff auf SQLite über eine Funktion in einer ausgelagerten Klasse
Verfasst: Montag 9. November 2020, 18:10
Hallo ich programmiere schon länger kleinere Sachen mit Python und komme auch recht gut klar.
Ich habe ein größeres Programm (Haussteuerung) geschrieben, dass auch gut läuft. Ich möchte jetzt allerdings konsequenter in einzelne Klassen aufteilen. Da alle Bereiche regelmäßig auf eine SQLite Datenbank zugreifen, muss ich eine zentrale Klasse für den DB Zugriff schreiben, da ja sonst die Datenbank gesperrt ist, wenn bereis eine andere Klasse darauf zugreift.
Da stehe ich jetzt voll auf dem Schlauch und komme auch mit googeln nicht weiter.
Normalerweise greife ich ja beispielsweise mit
zu.
Wenn ich dann Datensätze auslese, mache ich das mit:
Wenn ich jetzt aber eine db Klasse nutzen möchte, um in meiner Anwendung auf diese, mit Hilfe der Funktion "select(SQLText)" zu zugreifen:
die in meiner Klasse wie folgt definiert ist:
Wie gestalte ich denn dann die Rückgabe, so das ich die Datensätze bekomme?
denn:
liefert nur den ersten Datensatz.
Des weiteren müsste ich ja die maximale Anzahl von Feldern prüfen, damit ich keine Fehler generiere, wenn ein SQL auf eine Tabelle mit acht und ein anderes auf eine Tabelle mit drei Felder zugreift.
Kann mir da jemand helfen?
Vielen Dank im Voraus
Ralf
Ich habe ein größeres Programm (Haussteuerung) geschrieben, dass auch gut läuft. Ich möchte jetzt allerdings konsequenter in einzelne Klassen aufteilen. Da alle Bereiche regelmäßig auf eine SQLite Datenbank zugreifen, muss ich eine zentrale Klasse für den DB Zugriff schreiben, da ja sonst die Datenbank gesperrt ist, wenn bereis eine andere Klasse darauf zugreift.
Da stehe ich jetzt voll auf dem Schlauch und komme auch mit googeln nicht weiter.

Normalerweise greife ich ja beispielsweise mit
Code: Alles auswählen
import sqlite3
con = sqlite3.connect("Datenbankpfad")
dbcursor = con.Cursor()
dbcursor.execute("SELECT * FROM 'Tabelle'")
Wenn ich dann Datensätze auslese, mache ich das mit:
Code: Alles auswählen
for datensatz in dbcursor
Variable1 = datensatz[0]
Variable2 = datensatz[1]
Code: Alles auswählen
Import db
SQLText = "SELECT * FROM 'Tabelle'"
db.select(SQLText)
Code: Alles auswählen
import sqlite3
con = sqlite3.connect("Datenbankpfad")
dbcursor = con.Cursor()
def select(SQLText):
db.select(SQLText)
denn:
Code: Alles auswählen
return datensatz[0]
Des weiteren müsste ich ja die maximale Anzahl von Feldern prüfen, damit ich keine Fehler generiere, wenn ein SQL auf eine Tabelle mit acht und ein anderes auf eine Tabelle mit drei Felder zugreift.
Kann mir da jemand helfen?
Vielen Dank im Voraus
Ralf