tmp: add check_cups.py script to query Firebird schema
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
9aa04307c6
commit
ebd45446a4
@@ -0,0 +1,63 @@
|
||||
import sys
|
||||
sys.path.insert(0, ".")
|
||||
import sqlite3
|
||||
from app.services.firebird_service import get_firebird_from_config
|
||||
|
||||
conn = sqlite3.connect("rips_manager.db")
|
||||
conn.row_factory = sqlite3.Row
|
||||
cfg = {r["key"]: r["value"] for r in conn.execute("SELECT * FROM config").fetchall()}
|
||||
conn.close()
|
||||
|
||||
fb, ok, msg = get_firebird_from_config(cfg)
|
||||
if not ok:
|
||||
print("Error Firebird:", msg)
|
||||
sys.exit(1)
|
||||
|
||||
# Columnas de ITEM
|
||||
ok1, _, rows1 = fb.execute_query("""
|
||||
SELECT TRIM(f.RDB$FIELD_NAME) AS campo
|
||||
FROM RDB$RELATION_FIELDS f
|
||||
WHERE TRIM(f.RDB$RELATION_NAME) = 'ITEM'
|
||||
ORDER BY f.RDB$FIELD_POSITION
|
||||
""")
|
||||
print("=== COLUMNAS DE ITEM ===")
|
||||
print([r["campo"] for r in rows1] if ok1 else "sin tabla ITEM")
|
||||
|
||||
# Muestra de ITEM con CUPS
|
||||
ok2, _, rows2 = fb.execute_query("""
|
||||
SELECT FIRST 3 i.* FROM ITEM i
|
||||
WHERE i.CUPS_DETALLE IS NOT NULL AND TRIM(i.CUPS_DETALLE) <> ''
|
||||
""")
|
||||
print("\n=== ITEM CON CUPS_DETALLE ===")
|
||||
for r in (rows2 or []):
|
||||
print(dict(r))
|
||||
|
||||
# ITEM para CH4
|
||||
ok3, _, rows3 = fb.execute_query("SELECT FIRST 1 i.* FROM ITEM i WHERE TRIM(i.CODIGO) = 'CH4'")
|
||||
print("\n=== ITEM DONDE CODIGO='CH4' ===")
|
||||
print(dict(rows3[0]) if (ok3 and rows3) else "no encontrado por CODIGO")
|
||||
|
||||
# Intentar JOIN directo RELACION -> ITEM
|
||||
ok4, _, rows4 = fb.execute_query("""
|
||||
SELECT FIRST 5 rel.COD_EXAMEN, i.CUPS_DETALLE
|
||||
FROM RELACION rel
|
||||
JOIN ITEM i ON TRIM(i.CODIGO) = TRIM(rel.COD_EXAMEN)
|
||||
WHERE i.CUPS_DETALLE IS NOT NULL AND TRIM(i.CUPS_DETALLE) <> ''
|
||||
""")
|
||||
print("\n=== JOIN RELACION->ITEM (por CODIGO) ===")
|
||||
for r in (rows4 or []):
|
||||
print(dict(r))
|
||||
|
||||
if not rows4:
|
||||
# Intentar con otro campo
|
||||
ok5, _, rows5 = fb.execute_query("""
|
||||
SELECT FIRST 3 i.* FROM ITEM i WHERE TRIM(i.CODIGO) IN (
|
||||
SELECT DISTINCT TRIM(rel.COD_EXAMEN) FROM RELACION rel WHERE rel.COD_EXAMEN IS NOT NULL
|
||||
)
|
||||
""")
|
||||
print("\n=== ITEM que coincide con COD_EXAMEN de RELACION ===")
|
||||
for r in (rows5 or []):
|
||||
print(dict(r))
|
||||
|
||||
fb.disconnect()
|
||||
print("\nListo.")
|
||||
Reference in New Issue
Block a user