# -*- coding: utf-8 -*- import sys, io sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace') import fdb conn = fdb.connect( dsn=r'localhost:c:\medicus 3\data\medicus.fdb', user='SYSDBA', password='masterkey', charset='win1250' ) cur = conn.cursor() for table in ['ED_BOOKOFSUBMISSIONS', 'ED_BOOKOFSUBMISSIONATTACH', 'ED_MAILBOXMESSAGE', 'ED_STORAGE']: print(f"\n{'='*70}") print(f"TABULKA: {table}") print('='*70) cur.execute(f""" SELECT rf.RDB$FIELD_NAME FROM RDB$RELATION_FIELDS rf WHERE rf.RDB$RELATION_NAME = '{table}' ORDER BY rf.RDB$FIELD_POSITION """) cols = [r[0].strip() for r in cur.fetchall()] print(f"Sloupce: {cols}") cur.execute(f"SELECT COUNT(*) FROM {table}") print(f"Počet: {cur.fetchone()[0]}") # BLOB sloupce vynech cur.execute(f""" SELECT rf.RDB$FIELD_NAME FROM RDB$RELATION_FIELDS rf JOIN RDB$FIELDS f ON f.RDB$FIELD_NAME = rf.RDB$FIELD_SOURCE WHERE rf.RDB$RELATION_NAME = '{table}' AND f.RDB$FIELD_TYPE = 261 """) blob_cols = {r[0].strip() for r in cur.fetchall()} safe = [c for c in cols if c not in blob_cols] # Najdi razeni order_col = next((c for c in ['CREATEDATE','SENTDATE','CREATED','ODESLANO','DATUM','ID'] if c in cols), cols[0]) try: cur.execute(f"SELECT FIRST 10 {', '.join(safe)} FROM {table} ORDER BY {order_col} DESC") rows = cur.fetchall() print(f"\nPosledních 10 (ORDER BY {order_col} DESC):") for row in rows: print(f" {dict(zip(safe, row))}") except Exception as e: print(f"Chyba SELECT: {e}") # Zkus bez order try: cur.execute(f"SELECT FIRST 5 {', '.join(safe)} FROM {table}") rows = cur.fetchall() for row in rows: print(f" {dict(zip(safe, row))}") except Exception as e2: print(f"Chyba i bez ORDER: {e2}") conn.close() print("\nHotovo.")