Terminamos de revisar los Stored Procedures, tablas y demás y todo funciona perfectamente, ultimas modificaciones que hicimos:
- Al insertar verificamos que no exista un elemento igual, si existe no se inserta.
- Cuando se borra una relación verifica que sus componentes estén activos.
- Modificamos algunos errores que habían en el diseño de las tablas, errores de llaves que no nos permitían insertar cuando se borraba el mismo objeto.
Revisamos la funcionalidad de la página relacionada con la base de datos y realiza todos los trabajos bien.
Problemas difíciles que tuvimos que afrontar y su solución:
- En el momento de acceder a elementos de diferentes tablas para hacer modificaciones, o hacer validaciones en base a ellos, este problema lo afrontamos con la función JOIN y varias funciones que la complementan como INNER, también se utilizó la función SET para conseguir algunos id.
- A la hora de leer los XML habían muchas maneras de hacerlo sin embargo no entendía como se podía hacer una simulación, ni tampoco entendía como podíamos basarnos en la fecha para insertar los datos, la primera solución fue guardar la fecha como atributo de todos los datos en las tablas, después usamos la idea del profesor, y guardamos las fechas en una tabla temporal, sacamos las fechas máximas y mínimas e iteramos sobre ellas, se presentaron algunos problemas al ir insertando las fechas y se usaron métodos como OPENXML Y XQUERY, finalmente el que nos funciono mas fue OPENXML.
- Se presentaron algunas inconsistencias en los archivos XML, por lo también dedicamos tiempo a buscar los detalles que podrían ocasionar errores e informar al grupo de datos así como al grupo de bases de datos, dichos errores eran de formato y datos.
- Al hacer UPDATE de algún objeto se utilizaba la función CASE, la cual nos ayudó a solo modificar los datos cuando su reemplazo no fuera -1, que es lo que retorna los text box cuando el usuario no pone nada, sin embargo también lo utilizamos para que si el datos que íbamos a utilizar fuera nulo no lo cambiara, esto nos generó error que a la larga no entendimos porque se daba por lo que empezamos a usar la función ISNULL para validar que no cambiara datos cuando su remplazo era nulo.
- Problema para crear el grid editable, se resolvió usando template fields en vez de boundfield para cada columna, al final la tabla editable no se utilizó entonces se cambio el textbox por un label, pero todavía se utiliza el templatefield para añadir textoBox en la ultima fila para insertar.
- Problema con el width de los grids, se probaron muchas maneras para tratar de editar el grosor, ya que en el grid de concepto de cobro columnas que tan solo dicen si o no toman mucho espacio.
- Problema para modular los grids, al inicio se pensaba colocar todas las tablas del usuario administrador en un archivo pero esto causaba muchos problemas a la hora de querer mostrar una y ocultar otro, además si alguna se ocultaba y se recargaba la pagina se volvían a mostrar todos los grids. Por estos problemas se decidio usar un site master, y colocar cada grid en un archivo por parte, usando el site master para hacer referencia a cada uno.
- El tener cada grid en archivos distintos no permitía compartir variables locales, entonces se usaron variables de sesión para pasar datos como numero de finca o identificación de una tabla a otra.
Consejos:
- Investigar bastante las instrucciones que se utilizan en sql ya que algunas nos pueden simplificar bastante algunos trabajos.
- Leer que se suele usar y por que algunas cosas son mejores que otras, un ejemplo de este consejo empleado en este trabajo fue la selección del método de lectura del XML.
- Preguntar mucho en todo momento.
- Tener presente los detalles como los tipos de los parametros o los atributos de las tablas, ya que son detalles pequeños que pueden generar horas de problemas. un ejemplo valido en este trabajo fue el "AND [activo] = 1".
- Modularizar la pagina web y la base de datos, evitar agregar muchas tablas en un solo archivo, ya que esto puede hacer complejo el ocultarlos y mostrarlos.
- En la parte web utilizamos variables de sesión para pasar parámetros.
Horas trabajadas:
- Esteban Torres 42 horas.
- Esteban Madrigal 45 horas.
Referencias
- https://www.youtube.com/channel/UCMGGDkj9Fl24v4Fzy3Ar1IA/featured
- http://aspnet-with-c-sharp.blogspot.com/2011/02/fully-editable-gridview-in-aspnet-2.html
- https://www.w3schools.com/sql/sql_syntax.asp
- https://docs.microsoft.com/en-us/sql/relational-databases/xml/examples-using-openxml?view=sql-server-ver15
No hay comentarios:
Publicar un comentario