From fe65a564322d8fcc4319a32831cfb05e5a0889d9 Mon Sep 17 00:00:00 2001 From: Sebastian Serfling Date: Mon, 10 Mar 2025 14:22:20 +0100 Subject: [PATCH] First Version Exporter --- .env | 16 ++++ Test_Datenbank/App.sdf => App.sdf | Bin 720896 -> 917504 bytes errorhandler.py | 1 + exporter.py | 151 ++++++++++++++++++++++++++++++ importer.py | 1 + mail.py | 3 + main.py | 15 +++ mssql-connector.py | 0 mssqlconnector.py | 2 + 9 files changed, 189 insertions(+) rename Test_Datenbank/App.sdf => App.sdf (73%) delete mode 100644 mssql-connector.py create mode 100644 mssqlconnector.py diff --git a/.env b/.env index e69de29..995c1b9 100644 --- a/.env +++ b/.env @@ -0,0 +1,16 @@ +#### Auflistung der Variablen + +MSSQL_CONNECTION_STR="Driver={SQL Server};Server=172.17.1.25;Database=balzerwaagenpc;UID=sa;PWD=adm.3dfx12;" + +E_MAIL_ADDRESS="serfling@itdata-gera.de" +E_MAIL_ADDRESS_PASSWORD="" +E_MAIL_SMTP_SERVER="mail.itdata-gera.de" +E_MAIL_SMTP_SERVER_PORT="25" +E_MAIL_SEND_TO="serfling@itdata-gera.de" + +SDF_LOCAL_PFAD="C:/Users/Sebastian Serfling/PycharmProjects/SDF-Tool/" +SDF_REMOTE_PFAD="C:/Users/Sebastian Serfling/PycharmProjects/SDF-Tool/" + +LOG_ENABLE="True" +LOG_FILE_PFAD="./logs" + diff --git a/Test_Datenbank/App.sdf b/App.sdf similarity index 73% rename from Test_Datenbank/App.sdf rename to App.sdf index a1a1f1a34393ca675f21276e494d13762f878bae..0bd5949849bd19569b3b4a6565ff2b46169c4c08 100644 GIT binary patch delta 37665 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 delta 5735 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 0: + skipped += 1 + continue # Datensatz existiert bereits -> überspringen + + # Datensatz einfügen + try: + mssql_cursor.execute(insert_sql, *row) + inserted += 1 + except Exception as ie: + print(f"Fehler beim Einfügen in Tabelle {table_name}: {ie}") + mssql_conn.commit() + print(f"Für Tabelle {table_name}: {inserted} Datensätze eingefügt, {skipped} übersprungen.") + + # Falls IDENTITY_INSERT aktiviert wurde, wieder deaktivieren + if identity_insert: + try: + mssql_cursor.execute(f"SET IDENTITY_INSERT {table_name} OFF") + mssql_conn.commit() + print(f"IDENTITY_INSERT für {table_name} deaktiviert.") + except Exception as ie: + print(f"Fehler beim Deaktivieren von IDENTITY_INSERT für {table_name}: {ie}") + + # Verbindungen schließen + sdf_cursor.close() + sdf_conn.close() + mssql_cursor.close() + mssql_conn.close() +except Exception as e: + print(f"Allgemeiner Fehler: {e}") diff --git a/importer.py b/importer.py index e69de29..047402d 100644 --- a/importer.py +++ b/importer.py @@ -0,0 +1 @@ +## Importer aus MSSQL in SDF \ No newline at end of file diff --git a/mail.py b/mail.py index e69de29..2cf0ff5 100644 --- a/mail.py +++ b/mail.py @@ -0,0 +1,3 @@ +## Import für E-Mail Server und Mail Adressen Daten +import dotenv +import datetime diff --git a/main.py b/main.py index e69de29..3debef9 100644 --- a/main.py +++ b/main.py @@ -0,0 +1,15 @@ +## Main File für die Controller +import exporter +import importer +import errorhandler +import mail +import mssqlconnector +## Import von Connector + +import sys +import os +import datetime as dt +import dotenv + + + diff --git a/mssql-connector.py b/mssql-connector.py deleted file mode 100644 index e69de29..0000000 diff --git a/mssqlconnector.py b/mssqlconnector.py new file mode 100644 index 0000000..8e24eda --- /dev/null +++ b/mssqlconnector.py @@ -0,0 +1,2 @@ +## Connector für MSSQL +import dotenv \ No newline at end of file