Files
medicus/MedicusWithClaude/db_query2.py
2026-03-18 07:13:47 +01:00

76 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Podrobný průzkum FILES a EXTERNI_DB spusť na Windows: python db_query2.py
"""
import fdb
conn = fdb.connect(
dsn=r'localhost:c:\medicus 3\data\medicus.fdb',
user='SYSDBA',
password='masterkey',
charset='win1250'
)
cur = conn.cursor()
out = []
# 1. Obsah EXTERNI_DB
out.append("=== EXTERNI_DB (konfigurace externích databází) ===")
cur.execute("SELECT DBNAME, PATH, SERVER, HESLO FROM EXTERNI_DB")
for row in cur.fetchall():
out.append(f" DBNAME={row[0]} PATH={row[1]} SERVER={row[2]} HESLO={row[3]}")
# 2. FILES přehled po rocích
out.append("\n=== FILES počty záznamů po rocích ===")
cur.execute("""
SELECT EXTRACT(YEAR FROM DATUM) as ROK, COUNT(*) as POCET,
SUM(OCTET_LENGTH(BODY)) as CELKEM_BYTU
FROM FILES
GROUP BY EXTRACT(YEAR FROM DATUM)
ORDER BY ROK
""")
total_bytes = 0
for row in cur.fetchall():
rok, pocet, bytu = row
mb = (bytu or 0) / 1024 / 1024
total_bytes += (bytu or 0)
out.append(f" Rok {int(rok) if rok else '?'}: {pocet} souborů, {mb:.1f} MB")
out.append(f" CELKEM: {total_bytes/1024/1024:.1f} MB v BLOB datech FILES")
# 3. FILES ukázka typů souborů
out.append("\n=== FILES typy souborů (dle přípony FILENAME) ===")
cur.execute("""
SELECT LOWER(SUBSTRING(FILENAME FROM CHAR_LENGTH(FILENAME) - 3)) as EXT,
COUNT(*) as POCET
FROM FILES
WHERE FILENAME IS NOT NULL
GROUP BY 1
ORDER BY 2 DESC
""")
for row in cur.fetchall():
out.append(f" {row[0]} : {row[1]} souborů")
# 4. FILES ukázka prvních 5 záznamů (bez BODY)
out.append("\n=== FILES ukázka 5 záznamů (bez binárních dat) ===")
cur.execute("""
SELECT ID, IDPAC, FILENAME, DATUM, OCTET_LENGTH(BODY) as VELIKOST,
POZNAMKA, IDDOCTYP
FROM FILES
ORDER BY DATUM DESC
ROWS 5
""")
for row in cur.fetchall():
out.append(f" ID={row[0]} IDPAC={row[1]} soubor={row[2]} datum={row[3]}"
f" velikost={row[4]}B pozn={row[5]} typ={row[6]}")
# 5. DOCTYP typy dokumentů
out.append("\n=== DOCTYP číselník typů dokumentů ===")
cur.execute("SELECT ID, NAZEV, SYSID FROM DOCTYP ORDER BY ID")
for row in cur.fetchall():
out.append(f" ID={row[0]} nazev={row[1]} sysid={row[2]}")
result = '\n'.join(out)
print(result)
with open('db_query2_result.txt', 'w', encoding='utf-8') as f:
f.write(result)
print("\nUloženo do db_query2_result.txt")
conn.close()