Avance #16
Avances: Descubrimos que la primera versión de los datos venían erróneos, y procedimos a arreglarlos. También nos enfrentamos a ciertos problemas de lectura.
Problemas para la primera versión de los datos:
- El XML de administradores no cargaba y luego de revisar todo el código nos dimos cuenta que era el archivo que no tenía el formato correctamente, le faltaban la etiqueta de cierre.
Problemas: Al cargar los datos nos dimos cuenta que la palabra password, la cual es una columna dentro de la tabla de usuarios, es una palabra reservada de SQL. Algunos valores de las identificaciones tenían más números de los soportados por el tipo integer. La fecha en el XML viene con comillas.
En la parte web no se pueden cargar a variables con errores en el tipo, si se dice que es un int se debe parsear lo obtenido del textbox y pasarlo a int pero si lo que viene son letras entonces dará error y la página se caerá.
Solución: Para el problema de la columna password se deben agregar "[]" alrededor para que sea reconocida. La solución al exceso de números en las cédulas fue resuelto modificando a varchar(20). Para la lectura de la fecha se debe tomar como un varchar y luego convertirlo en tipo date.
En la parte web se deben eliminar las conversiones innecesarias, por lo tanto se valida en la BD (se asegurándose de no insertar letras). Esto mediante una estrategia que se simplifica en revisar si un tipo de dato no es el indicado entonces por ejemplo: si debería ser un integer y este contiene letras entonces con expresiones regulares (Regex) se determina y convierte ese valor a -1, luego en la base de datos hacemos un simple if (valorVariable <0) entonces quiere decir que hay un error y se llama un throw con un mensaje que indica el error y la pagina web lo despliega
Consejos:
Antes de leer los documentos carguen estos a un visualizador en línea o simplemente traten de abrirlos con algun navegador para observar si estos no tienen errores de formato ya que en nuestro caso sucedió. El lector va de manera lineal por lo que si tiene un error al intentar leer el archivo se aconseja que se eliminen secciones del archivo.
Referencias: SQL Shack nos brindó la forma de leer xml con OPENXML
Buenas prácticas:
En el momento de hacer pruebas de inserción y demás es importante saber cuales FK existen para que la eliminación de los datos no causen errores. Utilizar SET NOCOUNT ON permite que todos los Queries se salten una parte que si no se está depurando no es necesario que se ejecute. Utilizar la tabulación permite que si se tienen muchos elementos estos sean comprensibles y el código se pueda mantener.
Horas: 4
Comentarios
Publicar un comentario