"""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}")