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