SQLite-Datenbank kann nicht ausgelesen werden

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
apple-pi
User
Beiträge: 4
Registriert: Donnerstag 11. Juni 2020, 19:52

Hallo zusammen,

ich versuche gerade mit SQLite eine Applikation aufzubauen und habe dabei folgenden Programmcode erstellt, der mir eine kleine Testtabelle erstellt, die dann wieder ausgelesen werden soll. Da Programm sieht folgendermaßen aus. Mit den sql commands erstelle ich zunächst di Tabelle, dann machste, setze den beispielswert, dann lese ich aus. Das Problem ist, dass das auslesen nicht klappt. Ich erhalte keine Werte. Könnt ihr mir helfen. Wie kann ich die Datenbank auslesen bzw. was mach ich verkehrt?

import tkinter
from tkinter import *

import os, sys, sqlite3

# Verbindung zur Datenbank erzeugen
connection = sqlite3.connect("test.db")

# Datensatz-Cursor erzeugen
cursor = connection.cursor()

#Tabelle erzeugen
sql = "CREATE TABLE test(var1 TEXT, var2 TEXT)"


print(sql)

#cursor.execute(sql)
connection.close()


connection = sqlite3.connect("test.db")
cursor = connection.cursor()
sql = "SELECT var1 FROM test"
#sql = "INSERT INTO test VALUES('Test','It')"
#sql = "SELECT * FROM test"
cursor.execute(sql)

print(cursor)
print(sql)
for dsatz in cursor:
print(dsatz[0] + dsatz[1])

connection.close()
Sirius3
User
Beiträge: 18250
Registriert: Sonntag 21. Oktober 2012, 17:20

Hast Du überhaupt Daten in die Tabelle geschrieben? Und auch mit `commit` gesichert?
apple-pi
User
Beiträge: 4
Registriert: Donnerstag 11. Juni 2020, 19:52

Hallo Sirius,
ja ich habe mit dem oben auskommentierten Befehl Testdaten in die Tabelle geschrieben:

#sql = "INSERT INTO test VALUES('Test','It')"

Also, ich habe das Programm mehrfach laufen lassen und immer jeweils einen der drei Befehle mit dem sql command ausgeführt.

sql = "SELECT var1 FROM test"
sql = "INSERT INTO test VALUES('Test','It')"
sql = "SELECT * FROM test"

Zunächst mit

sql = "INSERT INTO test VALUES('Test','It')"

die Daten reingeschrieben, dann wollte ich die mit

sql = "SELECT var1 FROM test"
bzw.
sql = "SELECT * FROM test"

lesen.
apple-pi
User
Beiträge: 4
Registriert: Donnerstag 11. Juni 2020, 19:52

commit habe ich scheinbar nicht ausgeführt. Wo muss der Befehl platziert werden und auf welche Weise?
apple-pi
User
Beiträge: 4
Registriert: Donnerstag 11. Juni 2020, 19:52

Hallo Sirius,

der commit Befehl hat gefehlt. Danke für den Hinweis. Jetzt ging's es nach.

Viele Grüße
apple-pi
Antworten