Entrada Final

 Hora Inicio: 7:00        Hora Fin: 7:30


Resumen de entradas:


 

Hora inicio: 10:00 p.m        Hora fin: 11:30 p.m




Se implementaron las tablas de la base de datos al mismo tiempo que se realizaba el diagrama y sus respectivas conexiones entre tablas.


Se tardó aproximadamente 1.5 horas ya que es muy tedioso este proceso.

 Hora Inicio: 9:00 a.m        Hora Fin: 9:30 a..m



Se implementan los proyectos a trabajar para las clases, las funciones de cada clases y el MVC para las vistas y controladores.



Se implementan las 3 clases a Utilizar para las consutas en la capa lógica.





Se implementan la estructura de las clases para las funciones que se utilizaran en cada clase entity.




Se crea la conexion con la base de datos.


Problemas:
    Tuve problemas con el proyecto, por error cree uno que no era ASP.NET y me di cuenta un poco después ya que noté que las funcionalidades no eran las mismas a mi anterior proyecto.

Pero cuando me di cuenta lo eliminé y realicé un nuevo proyecto ya de forma correcta para esta asignación.

Se tardó aproximadamente 30 minutos.
    

 Hora inicio: 11:32 p.m        hora fin: 12:20 a.m



Se parsea el XML catalogo para después iniciar con la lectura de los nodos y agregar los valores a sus respectivas tablas correspondientes.




Se insertan los valores a las tablas Pais y Giro, obtenidos del XML catalogo.




Se cargaron los datos de las tablas Etapa y PremioMontana.



Tablas Equipo y Corredor.



Tablas Juez y TipoMovimientoTiempo.



Tablas TipoMovimientoRegular y TipoMovimientoPuntosMontana.


Se tardó aproximadamente 50 minutos, no fue tan difícil ya que se tenía como referencia las TPR anteriores.


Hora inicio: 7:00 a.m        Hora Fin: 10:45 a.m





Se declaran las tablas auxiliares a utilizar y se crea la tabla InstanciasPorIterar, la cuales la encargada de ir iterando por instancias y años respectivamente.


También se parsea el XML DatosFinales, el cual contiene los archivos necesarios para la simulación.



Se declaran las variables a utilizar durante la simulación.



Se crea un While que va recorriendo la tabla instanciasPorIterar para ir insertando a la tabla Instancia Giro Según e año en el que se esté.


Se insertan las instancias en una tabla auxiliar para después recorrerlas con otro while, ya que no lograba hacer que se agregaran los datos de manera que cumpliera con el orden respectivo, entonces por eso se creó el while anidado.




Se insertan las InstanciasGiroXEquipo a su tabla correspondiente.
ERROR:
    

Al inicio no me cargaba los datos porque no encontraba el nodo dentro de la instancia en el XML, ya que lo tenía implementado de esta manera, pero despues busqué en internet y vi una solución para esta y las demás tablas.



Donde dice que hay que darle una variable dentro del path, muy similar al del año.





Se insertan los valores a la tabla InstanciaGiroXEquipoCorredor con sus respectivos INNER JOIN para realizar y asegurar su correcta inserción y en su respectiva instancia.



Se inserta los valores en la tabla Carrera.




Para las llegadas se implemento insertandolas en una tabla Type para después enviar todas las llegadas de esa instancia a un SP y poder procesarlas una a una.

    SP LlegadasSimulación:
        
        

El SP recibe la tabla y se declaran las variables a utilizar.
Tablas Axuliares para enviar datos.




Se crea una tabla @tblaOrdenada para insertar los valores que vienen en la tabla enviada desde la simulación y ordenaros para después utilizarlos de manera más sencilla y ordenada.

Seguidamente se insertan esos datos en la tabla Llegadas.


Se recorre la tabla ordenada con un While para ir uno a uno, después se obtiene el idEtapa y la cantidad de puntos por etapa para los ganadores o primeros en llegar.


Seguidamente se calcula el tiempo que duró cada corredor en segundos:
SELECT @tiempoSumar = DATEDIFF(ss,CA.HoraIncio,@horaFin) FROM Carrera CA WHERE CA.Id = @idCarrera,
para después a las variables TIME(0) de cada tabla con timepo, sumarle los segundos y obtener el nuevo tiempo acumulado:
            SumaTiempo = DATEADD(ss,@tiempoSumar,SumaTiempo)



Después para saber cuantos puntos hay que sumarle a cada corredor en caso de merecerlo, realicé un IF donde si @idMenor(variable que recorre la tabla del while) es mayor a la cantidad de puntos que otorga la etapa, entonces significa que a ese corredor ya no se le da premiación, ahora de lo contrario se hace un pequeño calculo para averiguar cuanto puntaje se le otorga, y como es decreciente segun vayan llegando, entonces la variable @puntosGanados  será igual a la cantidad de puntos de la etapa menos el id en el momento del While + 1.



Una vez ya calculado el puntaje y el tiempo, se procede a actualizar las tablas de las instancias por corredor y las instancias por equipo, ya que si aumenta o disminuye en corredor, también lo hace en la de equipo.




Por último se procede a insertar en las tablas movimientoRegular y movimientoTiempo en base a sus nuevos datos.

Se tardó aproximadamente 3 horas y 40 minutos, ya que son procedimientos muy lentos y rediosos, no tuve inconvenientes que pueda documentar, pero si me quedaba pegado por ratos pensado en la idea de como lo haría.


 Hora Inicio: 14:00     Hora fin: 15:00



De igual forma   que las llegadas, se implemento una tabla para insertarlas, enviarlas a un SP y poder procesarlas independeintemente.


El SP recibe la tabla como parámetro y seguidamente inicializa(DECLARE) la mayoría de variables a utilizar.

Con un while y un iterador el cual inicia con el primer valor de la tabla Aux y va aumentado sucesivamente, asigna los valores a las variables para comenzar a procesar cada premio uno a uno.


Una vez asignadas las variables, se procede a actualizar los campos de las insancias equipo y corredor, segúncorresponda el primio.

Por último se inserta en la tabla movimientoPremioMontana su respectivo registro, ayudandose de INNER JOIN para asegurarse de que la inserción sea a sus correspondientes instancias, corredores y equipos.






Se tardó aproximadamente 1 hora y 10 minutos ya que era el mismo procedimiento que llegadas, pero las sanciones se implementaron de la misma manera. 

Hora Inicio: 13:00   Hora FIN: 14:30







Se llama a la Base de Datos para que envíe los 10 corredores más regulares, este proceso se realiza con todas las consultas.



El stored procedure se encarga de dar los 10 corredores más regulares, recibiendo como parámetro la instancia del Giro.
De ahí se parte a implementar conexiones con INNER JOIN para obtener los datos correctos.

De igual manera para las demás consultas.







Se tardó una hora y 30 minutos ya que había que implementar el código para cada consulta en Capa Lógica, era fácil y repetitivo, pero un poco largo.
Después realizar las consultas no fue tan difícil, simplemente fue realizar INNER JOINS para hacerlas correctamente.


RESUMEN ESTADÍSTICAS:
    

Se realizaron 6 entradas en el Blogger. 7 con la final.

ANALISIS DE RESULTADOS:
Esto es un resumen de todo, en las demás entradas está más detallado todo.    

De este proyecto se reforzaron los conocimientos acerca de StoredProcedure, Bases de Datos y Capa Lógica, ya que se tenía algo de conocimiento gracias a las Tareas Programadas anteriores, esta no fue tan difícil o compleja, ya que muchas cosas ya habían sido implementadas anteriormente.
Si hubieron algunas complicaciones como cuando se creó el nuevo proyecto, ya que por error se implementó uno que no era, también al momento de la simulación hubo algunas complicaciones, no graves, pero que si se llevaron su tiempo en resolver como el tener que buscar como recorrer las instancias por año en la simulación sin que se insertaran los datos incorrectamente.
Otro de los pequeños problemas fue que hubo que implementar tablas auxiliares para las llegadas, premios de montaña y sanciones, ya que cada una de ellas debía implementarse una a una, por lo que se enviaron a un Stored Procedure y esa fue la solución para realizar los cálculos e inserciones correctamente.


En total se duraron: 610 minutos (10 horas y 6 minutos)

Comentarios

Entradas populares de este blog

Cargado de Catalogos

Implementación de las consultas.

(Simulación)