"""Prozkoumá strukturu tabulky DATA v externí DB - spusť na Windows""" import fdb, glob soubory = glob.glob(r'u:\MEDICUS_FILES_*.fdb') + glob.glob(r'u:\MEDICUS_FILES_*.FDB') if not soubory: soubory = glob.glob(r'u:\externi\MEDICUS_FILES_*.fdb') + glob.glob(r'u:\externi\MEDICUS_FILES_*.FDB') soubor = sorted(soubory)[-1] print(f"Soubor: {soubor}\n") conn = fdb.connect(dsn=f'localhost:{soubor}', user='SYSDBA', password='masterkey', charset='win1250') cur = conn.cursor() # Sloupce tabulky DATA print("=== Sloupce tabulky DATA ===") cur.execute(""" SELECT r.RDB$FIELD_NAME, f.RDB$FIELD_TYPE, f.RDB$FIELD_LENGTH, f.RDB$SEGMENT_LENGTH FROM RDB$RELATION_FIELDS r JOIN RDB$FIELDS f ON f.RDB$FIELD_NAME = r.RDB$FIELD_SOURCE WHERE r.RDB$RELATION_NAME = 'DATA' ORDER BY r.RDB$FIELD_POSITION """) for row in cur.fetchall(): typ = {7:'SMALLINT',8:'INTEGER',12:'DATE',13:'TIME',14:'CHAR',16:'INT64',35:'TIMESTAMP',37:'VARCHAR',261:'BLOB'}.get(row[1], str(row[1])) print(f" {row[0].strip():30} {typ} len={row[2]}") # Generátory print("\n=== Generátory ===") cur.execute("SELECT RDB$GENERATOR_NAME, RDB$GENERATOR_ID FROM RDB$GENERATORS WHERE RDB$SYSTEM_FLAG=0") for row in cur.fetchall(): print(f" {row[0].strip()} = {row[1]}") # Počet záznamů a ukázka print("\n=== Počet záznamů ===") cur.execute("SELECT COUNT(*) FROM DATA") print(f" {cur.fetchone()[0]} záznamů") print("\n=== Ukázka 3 záznamů (bez BLOB) ===") cur.execute(""" SELECT ID, OCTET_LENGTH(BODY) as VELIKOST FROM DATA ORDER BY ID ROWS 3 """) for row in cur.fetchall(): print(f" ID={row[0]} BODY={row[1]}B") conn.close()