notebook vb
This commit is contained in:
75
MedicusWithClaude/db_query2.py
Normal file
75
MedicusWithClaude/db_query2.py
Normal file
@@ -0,0 +1,75 @@
|
||||
"""
|
||||
Podrobný průzkum FILES a EXTERNI_DB – spusť na Windows: python db_query2.py
|
||||
"""
|
||||
import fdb
|
||||
|
||||
conn = fdb.connect(
|
||||
dsn=r'localhost:c:\medicus 3\data\medicus.fdb',
|
||||
user='SYSDBA',
|
||||
password='masterkey',
|
||||
charset='win1250'
|
||||
)
|
||||
cur = conn.cursor()
|
||||
out = []
|
||||
|
||||
# 1. Obsah EXTERNI_DB
|
||||
out.append("=== EXTERNI_DB (konfigurace externích databází) ===")
|
||||
cur.execute("SELECT DBNAME, PATH, SERVER, HESLO FROM EXTERNI_DB")
|
||||
for row in cur.fetchall():
|
||||
out.append(f" DBNAME={row[0]} PATH={row[1]} SERVER={row[2]} HESLO={row[3]}")
|
||||
|
||||
# 2. FILES – přehled po rocích
|
||||
out.append("\n=== FILES – počty záznamů po rocích ===")
|
||||
cur.execute("""
|
||||
SELECT EXTRACT(YEAR FROM DATUM) as ROK, COUNT(*) as POCET,
|
||||
SUM(OCTET_LENGTH(BODY)) as CELKEM_BYTU
|
||||
FROM FILES
|
||||
GROUP BY EXTRACT(YEAR FROM DATUM)
|
||||
ORDER BY ROK
|
||||
""")
|
||||
total_bytes = 0
|
||||
for row in cur.fetchall():
|
||||
rok, pocet, bytu = row
|
||||
mb = (bytu or 0) / 1024 / 1024
|
||||
total_bytes += (bytu or 0)
|
||||
out.append(f" Rok {int(rok) if rok else '?'}: {pocet} souborů, {mb:.1f} MB")
|
||||
out.append(f" CELKEM: {total_bytes/1024/1024:.1f} MB v BLOB datech FILES")
|
||||
|
||||
# 3. FILES – ukázka typů souborů
|
||||
out.append("\n=== FILES – typy souborů (dle přípony FILENAME) ===")
|
||||
cur.execute("""
|
||||
SELECT LOWER(SUBSTRING(FILENAME FROM CHAR_LENGTH(FILENAME) - 3)) as EXT,
|
||||
COUNT(*) as POCET
|
||||
FROM FILES
|
||||
WHERE FILENAME IS NOT NULL
|
||||
GROUP BY 1
|
||||
ORDER BY 2 DESC
|
||||
""")
|
||||
for row in cur.fetchall():
|
||||
out.append(f" {row[0]} : {row[1]} souborů")
|
||||
|
||||
# 4. FILES – ukázka prvních 5 záznamů (bez BODY)
|
||||
out.append("\n=== FILES – ukázka 5 záznamů (bez binárních dat) ===")
|
||||
cur.execute("""
|
||||
SELECT ID, IDPAC, FILENAME, DATUM, OCTET_LENGTH(BODY) as VELIKOST,
|
||||
POZNAMKA, IDDOCTYP
|
||||
FROM FILES
|
||||
ORDER BY DATUM DESC
|
||||
ROWS 5
|
||||
""")
|
||||
for row in cur.fetchall():
|
||||
out.append(f" ID={row[0]} IDPAC={row[1]} soubor={row[2]} datum={row[3]}"
|
||||
f" velikost={row[4]}B pozn={row[5]} typ={row[6]}")
|
||||
|
||||
# 5. DOCTYP – typy dokumentů
|
||||
out.append("\n=== DOCTYP – číselník typů dokumentů ===")
|
||||
cur.execute("SELECT ID, NAZEV, SYSID FROM DOCTYP ORDER BY ID")
|
||||
for row in cur.fetchall():
|
||||
out.append(f" ID={row[0]} nazev={row[1]} sysid={row[2]}")
|
||||
|
||||
result = '\n'.join(out)
|
||||
print(result)
|
||||
with open('db_query2_result.txt', 'w', encoding='utf-8') as f:
|
||||
f.write(result)
|
||||
print("\nUloženo do db_query2_result.txt")
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user