120 lines
4.2 KiB
Python
120 lines
4.2 KiB
Python
#! /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 * FROM vorfall WHERE vorfall = 'Störung';""")
|
|
|