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

54 lines
2.0 KiB
Python

"""Test připojení k externí DB a prozkoumání její struktury - spusť na Windows"""
import fdb, os, glob
# Najde první existující externí FDB soubor
soubory = glob.glob(r'u:\MEDICUS_FILES_*.fdb')
if not soubory:
soubory = glob.glob(r'u:\externi\MEDICUS_FILES_*.fdb')
if not soubory:
print("Žádné externí FDB soubory nenalezeny!")
exit()
soubor = sorted(soubory)[-1] # vezme nejnovější
print(f"Zkouším: {soubor}")
# Test 1: masterkey
try:
conn = fdb.connect(dsn=f'localhost:{soubor}', user='SYSDBA', password='masterkey', charset='win1250')
print("✓ Připojení s masterkey FUNGUJE!")
cur = conn.cursor()
# Jaké tabulky jsou v externí DB?
cur.execute("SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR IS NULL")
tabulky = [r[0].strip() for r in cur.fetchall()]
print(f"Tabulky v externí DB: {tabulky}")
# Kolik záznamů v FILES?
if 'FILES' in tabulky:
cur.execute("SELECT COUNT(*), MIN(ID), MAX(ID) FROM FILES")
row = cur.fetchone()
print(f"FILES: {row[0]} záznamů, ID od {row[1]} do {row[2]}")
cur.execute("SELECT ID, IDPAC, FILENAME, DATUM, OCTET_LENGTH(BODY) FROM FILES ORDER BY ID ROWS 3")
for r in cur.fetchall():
print(f" ID={r[0]} IDPAC={r[1]} FILE={r[2]} DATUM={r[3]} BODY={r[4]}B")
# Zjistit generátor
cur.execute("SELECT RDB$GENERATOR_NAME, RDB$GENERATOR_ID FROM RDB$GENERATORS WHERE RDB$SYSTEM_FLAG=0")
for r in cur.fetchall():
print(f"Generátor: {r[0].strip()} = {r[1]}")
conn.close()
except Exception as e:
print(f"✗ masterkey NEFUNGUJE: {e}")
# Test s jiným heslem - zkus prázdné
try:
conn = fdb.connect(dsn=f'localhost:{soubor}', user='SYSDBA', password='', charset='win1250')
print("✓ Připojení s prázdným heslem FUNGUJE!")
conn.close()
except Exception as e2:
print(f"✗ Prázdné heslo také nefunguje: {e2}")