Morgen Forum
Ich komme einfach nicht weiter mit meinen Versuch aktuelle Werte in ein Datenbank zu schreiben.
Es wird eine SQLite Datenbank erstellt, dann eine Tabelle und in diese Tabelle möchte ich gerne aktuelle Werte eintragen.
Gebe ich diese Werte wie unten im CODE eingetragen vor (z.B: hier cpu_temp = 24 und raum_temp = 45) werden diese Werte auch übernommen und ich kann sie aus der Tabelle abrufen.
So wie hier eingtragen im Code erhalte ich beim abfragen der Datenbank:
CPU = 24 RAUM = 45 SENSOR = DS1820 STANDORT = KELLER
ändere ich diese Werte im CODE auf z.B:
connection.execute("INSERT INTO messWerte (cpu_temp, raum_temp, sensor_art, standort) \
VALUES (10, 100, 'DS1820', 'Keller' )");
bekomme ich bei der Abfrage auch diese Änderung:
CPU = 10 RAUM = 100 SENSOR = DS1820 STANDORT = KELLER
Im Programm selber habe ich eine Variable temp_CPU in der die aktuelle CPU Temperatur eingefügt wird.
Diese kann ich mir mittels print anzeigen.
Möchte ich aber den Werte z.B. aus dieser Variablen auslesen
hier die Änderung:
connection.execute("INSERT INTO messWerte (cpu_temp, raum_temp, sensor_art, standort) \
VALUES (temp_CPU, 45, 'DS1820', 'Keller' )");
wird das Programm mit folgener Meldung abgebrochen:
Datenbank vorhanden
Tabelle wird erzeugt
36
1
36
Traceback (most recent call last):
File "temp.py", line 117, in <module>
VALUES (temp_CPU, 45, 'DS1820', 'Keller' )");
sqlite3.OperationalError: no such column: temp_CPU
Hier nochmals die Code Zeilen für diese Aufgabe:
# Datenbank messDaten erstellen
if os.path.exists("/media/usb/DatenPI/messDaten.db"):
print("Datenbank vorhanden")
connection = sqlite3.connect("/media/usb/DatenPI/messDaten.db")
else:
print("Datenbank nicht vorhanden")00
connection = sqlite3.connect("/media/usb/DatenPI/messDaten.db")
cursor = connection.cursor()
# Tabelle messWerte anlegen
cursor.execute("""CREATE TABLE IF NOT EXISTS messWerte (
cpu_temp INTEGER, raum_temp FLOAT, sensor_art TEXT,
standort TEXT
)""")
connection.commit()
connection.close
while True:
hier steht eigentlich noch anderer Code
# Daten in Tabelle eintragen
connection = sqlite3.connect("/media/usb/DatenPI/messDaten.db")
connection.execute("INSERT INTO messWerte (cpu_temp, raum_temp, sensor_art, standort) \
VALUES (temp_CPU, 45, 'DS1820', 'Keller' )");
connection.commit()
connection.close()
Alles anzeigen
Gruß aus Dorsten
Herbert