Sesión 5 Refactor de BD y API (SPs, códigos de salida y conexión Node)
Hora de inicio: 9:00pm
Hora de fin: 12:52 pm
Horas trabajadas: 3 h
Descripción de avances
Como el profe subió el archivo de estándares se hicieron los siguientes cambios:
- Script
database.sql: Unifiqué la baseEmpresaDB, dejé la tablaEmpleado, agreguéDBErrorspara errores de plataforma en elCATCH, y reescribísp_list_empleadosysp_insert_empleadocon parámetros@inNombre,@inSalarioy salida@outResultCode(0 = OK, duplicado = -1 antes delTRY, errores raros mapeados a código > 50000 y registro enDBErrors). - Estándar de codificación SQL: Ajusté el script al formato del curso (palabras reservadas en mayúscula, comas al inicio en listas,
SELECT/FROM/WHEREseparados, alias en tablas, condiciones entre paréntesis). - Datos: Mantuvimos al menos 40 filas de prueba en
Empleado. - Pruebas en SSMS: Las ejecuciones manuales las pasé a
database.tests.sqlpara no dejarEXEC“sueltos” en el script principal. - Backend (Express): Los endpoints pasaron a usar
inNombre,inSalarioy a leeroutResultCodedesde la respuesta deexecute(); así coincide con la firma nueva de los SPs. - Bug de inserción: Descubrimos que con
node-mssqlel valor del parámetroOUTPUTviene enresult.output, no enrequest.parameters[...].valuedespués delexecute. Eso explicaba el mensaje genérico “Error desconocido al insertar…” aunque el SP estuviera bien. - Comentarios en el SQL: Añadí comentarios cortos al script para acordarme en revisiones qué hace cada bloque (sin tocar la lógica).
Problemas encontrados
- Problema 1: Tras cambiar los SPs, la API seguía fallando en el insert o no interpretaba bien éxito / duplicado.
- Problema 2: En un momento el nombre de la BD del script (
EmpresaDB) no coincidía con el default del código o con el.env, lo que confunde si no se revisa.
Solución aplicada
- Solución al problema 1: Actualizar el servidor SQL con el
database.sqlnuevo y, en Node, leeroutResultCodedesderesult.outputtrasexecute(). - Solución al problema 2: Dejar documentado / unificado
DB_DATABASE=EmpresaDB(y volver a ejecutar el script en la instancia que usa el equipo).
Próximos pasos
- Probar en conjunto: GET lista, POST nuevo empleado, POST duplicado, y revisar si hay filas nuevas en
DBErrorssolo ante errores reales del motor. - Actualizar el análisis de resultados con la tabla de cumplimiento y las métricas si el profe las pide.
Comentarios
Publicar un comentario