48 lines
1.8 KiB
Python
48 lines
1.8 KiB
Python
"""Zjistí propojení mezi hlavní DB a externí DB - spusť na Windows"""
|
|
import fdb, glob
|
|
|
|
# Hlavní DB
|
|
conn_main = fdb.connect(dsn=r'localhost:c:\medicus 3\data\medicus.fdb',
|
|
user='SYSDBA', password='masterkey', charset='win1250')
|
|
cur = conn_main.cursor()
|
|
|
|
# Najít exportované záznamy v FILES (BODY není velký BLOB)
|
|
print("=== FILES záznamy po exportu (malý BODY = reference na externí DB) ===")
|
|
cur.execute("""
|
|
SELECT ID, IDPAC, FILENAME, DATUM, EXT_ID, DOCID,
|
|
OCTET_LENGTH(BODY) as BODY_LEN,
|
|
CAST(BODY AS VARCHAR(100)) as BODY_TEXT
|
|
FROM FILES
|
|
WHERE OCTET_LENGTH(BODY) < 100
|
|
ORDER BY ID DESC ROWS 5
|
|
""")
|
|
for r in cur.fetchall():
|
|
print(f" ID={r[0]} IDPAC={r[1]} FILE={r[2]}")
|
|
print(f" DATUM={r[3]} EXT_ID={r[4]} DOCID={r[5]}")
|
|
print(f" BODY_LEN={r[6]} BODY_TEXT='{r[7]}'")
|
|
|
|
# Ukázka záznamu s plným BODY (ještě ne exportovaný)
|
|
print("\n=== FILES záznamy PŘED exportem (velký BODY = binary data) ===")
|
|
cur.execute("""
|
|
SELECT ID, FILENAME, DATUM, EXT_ID, OCTET_LENGTH(BODY) as BODY_LEN
|
|
FROM FILES
|
|
WHERE OCTET_LENGTH(BODY) > 1000
|
|
ORDER BY ID DESC ROWS 3
|
|
""")
|
|
for r in cur.fetchall():
|
|
print(f" ID={r[0]} FILE={r[1]} DATUM={r[2]} EXT_ID={r[3]} BODY={r[4]}B")
|
|
|
|
conn_main.close()
|
|
|
|
# Porovnat s externí DB
|
|
print("\n=== DATA záznamy v externí DB ===")
|
|
soubory = glob.glob(r'u:\MEDICUS_FILES_*.fdb') + glob.glob(r'u:\MEDICUS_FILES_*.FDB')
|
|
soubor = sorted(soubory)[0] # vezmeme nejstarší
|
|
print(f"Soubor: {soubor}")
|
|
conn_ext = fdb.connect(dsn=f'localhost:{soubor}', user='SYSDBA', password='masterkey', charset='win1250')
|
|
cur_ext = conn_ext.cursor()
|
|
cur_ext.execute("SELECT UID, DATASIZE, CHUNK FROM DATA ORDER BY CHUNK ROWS 5")
|
|
for r in cur_ext.fetchall():
|
|
print(f" UID='{r[0]}' DATASIZE={r[1]} CHUNK={r[2]}")
|
|
conn_ext.close()
|