This commit is contained in:
2026-01-05 07:32:27 +01:00
parent 20bf839d98
commit ab3f103ec5
2 changed files with 178 additions and 0 deletions

65
Davky/30 Avety.py Normal file
View File

@@ -0,0 +1,65 @@
import mysql.connector
def parse_a_vety_bulk():
db_config = {
'host': '192.168.1.76',
'port': 3307,
'user': 'root',
'password': 'Vlado9674+',
'database': 'ordinace'
}
conn = mysql.connector.connect(**db_config)
cursor = conn.cursor(dictionary=True)
# 1. Načtení všech 'A' vět z archivu
print("Načítám věty typu A z databáze...")
cursor.execute("SELECT id_davky, obsah_radku FROM vety WHERE typ_vety = 'A'")
raw_records = cursor.fetchall()
if not raw_records:
print("Nenalezeny žádné věty typu A ke zpracování.")
return
# 2. Příprava seznamu dat pro hromadný insert
data_to_insert = []
for row in raw_records:
s = row['obsah_radku']
# Extrakce polí podle tvé specifikace (pozice + délka)
# Slicing v Pythonu: s[start : start + delka]
tuple_data = (
row['id_davky'], # id_davky
s[13:16].strip(), # HCPO (Pojišťovna)
s[17:25].strip(), # HICO (IČP)
s[31:34].strip(), # HODB (Odbornost)
s[1:8].strip(), # HCID (Číslo dokladu)
s[34:44].strip(), # HROD (Číslo pojištěnce / RČ)
s[44:49].strip() # HZDG (Diagnóza)
)
data_to_insert.append(tuple_data)
# 3. Hromadné vložení (Insert Many)
sql = """
INSERT INTO doklady
(id_davky, pojistovna, icp, odbornost, cislo_poradove, rodne_cislo, diagnoza)
VALUES (%s, %s, %s, %s, %s, %s, %s)
"""
try:
print(f"Vkládám {len(data_to_insert)} záznamů do tabulky doklady...")
cursor.executemany(sql, data_to_insert)
conn.commit()
print("Hromadný import dokladů byl úspěšně dokončen.")
except mysql.connector.Error as err:
print(f"Chyba při hromadném vkládání: {err}")
conn.rollback()
finally:
cursor.close()
conn.close()
if __name__ == "__main__":
parse_a_vety_bulk()