notebook vb

This commit is contained in:
2026-03-18 07:13:47 +01:00
parent a599b6741b
commit f2dc33a05e
23 changed files with 9102 additions and 13 deletions

View File

@@ -0,0 +1,75 @@
"""
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()