#! /usr/bin/env python.3.11 import sqlite3, os script_folder = os.path.dirname(os.path.realpath(__file__)) def erzeuge_tabellen(): with sqlite3.connect(script_folder + "/startegie.db") as verbindung: cursor = verbindung.cursor() cursor.execute("DROP TABLE IF EXISTS viren;") cursor.execute("DROP TABLE IF EXISTS viren_typ;") cursor.execute("DROP TABLE IF EXISTS vorfall;") sql = ''' CREATE TABLE viren( name TEXT PRIMARY KEY, typ INTEGER, status TEXT) ''' cursor.execute(sql) sql = ''' CREATE TABLE viren_typ( typ INTEGER PRIMARY KEY, groesse INT, signatur TEXT) ''' cursor.execute(sql) sql = ''' CREATE TABLE vorfall( name TEXT, ort TEXT, vorfall TEXT) ''' cursor.execute(sql) verbindung.commit() def schreibe_tabellen(): with sqlite3.connect(script_folder + "/startegie.db") as verbindung: cursor = verbindung.cursor() sql = ''' INSERT INTO viren_typ(typ, groesse, signatur) VALUES(1,128,'ABAABA'),(2,256,'ABAABA'),(3,256,'BCCBCB') ''' cursor.execute(sql) sql = ''' INSERT INTO viren(name, typ, status) VALUES ('T800', 1, 'aktiv'), ('T803', 2, 'aktiv'), ('Bit13', 3, 'aktiv'), ('Gorf3', 1, 'aktiv'), ('Gorf7', 2, 'aktiv') ''' cursor.execute(sql) verbindung.commit() def lese_tabellen(): with sqlite3.connect(script_folder + "/startegie.db") as verbindung: cursor = verbindung.cursor() sql = '''SELECT * FROM viren_typ;''' cursor.execute(sql) #for ergebnis in cursor: # print(ergebnis) return cursor.fetchall() def eingabe(): with sqlite3.connect(script_folder + "/startegie.db") as verbindung: cursor = verbindung.cursor() while True: name = input("Name des Virus: ") if not name: break ort = input("Ort: ") vorfall = input("Vorfall: ") sql = """Select * from viren WHERE name = '{name}';""".format(name=name) cursor.execute(sql) if cursor.fetchone(): speicher_aktion(name, ort, vorfall) else: print("Virus unbekannt !") print("Eingabevorgang wurde beendet.") def speicher_aktion(bezeichnung, ort, vorfall ): with sqlite3.connect(script_folder + "/startegie.db") as verbindung: cursor = verbindung.cursor() sql = """INSERT INTO vorfall(name, ort, vorfall) VALUES ( '{bezeichnung}', '{ort}', '{vorfall}' );""".format(bezeichnung=bezeichnung, ort=ort,vorfall=vorfall) cursor.execute(sql) def ausgabe_abfrage(sql_abfrage): with sqlite3.connect(script_folder + "/startegie.db") as daten: try: zeiger = daten.cursor() zeiger.execute(sql_abfrage) for datensatz in zeiger: for wert in datensatz: wert = str(wert) print('| ', wert, " " * (9 - len(wert)), end="") print("|") except sqlite3.OperationalError: print("Tabelle nicht gefunden!") except: print("Daten konnten nicht bearbeitet werden!") if __name__ == "__main__": #erzeuge_tabellen() #schreibe_tabellen() eingabe() for i in lese_tabellen(): print(i) ausgabe_abfrage(sql_abfrage="""SELECT vorfall.name, viren.typ, vorfall.ort, vorfall.vorfall FROM vorfall JOIN viren ON viren.name = vorfall.name WHERE vorfall = 'Störung';""")