Seccion 5

Dia: 30/05/25
Hora de inicio: 16:20
Hora de fin: 18:45
Cantidad de horas trabajadas: 2 horas y 25 min.

Problemas encontrados:

  1. En el SP InsertarEmpleado, el mapeo de @inNombrePuesto a IdPuesto devolvía NULL cuando el nombre tenía espacios en blanco al final.

  2. El script Python 1 (Cargador de Catálogos) arrojaba UnicodeEncodeError al imprimir nombres con acentos en consola de Windows.

  3. En el script Python 2 (Simulador de Operación), el parámetro autocommit=False hacía que la transacción se quedara abierta y se saturara el pool de conexiones tras varios días de simulación.

Cómo fueron resueltos:

  1. Reordenamiento de índices: Moví la sección CREATE INDEX justo después de la creación de MarcaAsistencia y MovimientoPlanilla para asegurar que existieran las tablas antes de indexarlas.

  2. Codificación UTF-8 en Python: En el print de Python 1, forcé sys.stdout.reconfigure(encoding='utf-8') al inicio del script para prevenir errores con caracteres nacionales.

  3. Autocommit en Python 2: Cambié la conexión a autocommit=True tras cada cierre semanal en el for para liberar la transacción y evitar saturar el pool:

    python
    conn.autocommit = True

Dudas:

  • Si conviene añadir un ON DELETE CASCADE en los FK de auditoría para limpiar EventLog cuando se elimine un Empleado.

Forma que se trabajó:

  • Par de sesiones de pair-programming remotas via Discord, compartiendo el código corregido y validándolo en ambiente de prueba.

Problemas de instalación del software:

  • Ninguno.

Problemas de aprendizaje del software:

  • Comprender la diferencia de comportamiento entre autocommit=False y True en pyodbc.

Investigaciones:

  • MSDN: “TRIM functions in T-SQL”

  • Pyodbc docs: “autocommit parameter”

Prueba de concepto:

  • Ejecuté todo el flujo (DDL → SPs → Python 1 → Python 2) en una base limpia y validé que:

    • Los índices se crean sin error.

    • InsertarEmpleado ya encuentra IdPuesto correctamente.

    • El Cargador imprime nombres acentuados bien.

    • La simulación completa de 160 días libera transacciones y no cuelga el pool.

Comments

Popular posts from this blog

Sesión 12

Sesión 4