miércoles, 7 de octubre de 2015
Empeze finalizando la lectura de las carreras en el XML junto con las posiciones. Este hace un ciclo por cada carrera y este ciclo hace un ciclo por cada posicion de dicha carrera, y asi la va insertando. Dependiendo de la posicion que haya quedado, se le asignan los puntos correspondientes(Usando un case). Luego de crear la entrada en MoviemientoPuntos, se actualizan los nuevos datos en CampeonatoXCorredor. El proceso de insertar sanciones es similar, al final se fija si la nueva cantidad de sanciones es mayor o igual a 30, si es asi, se dice que queda expulsado. Ya con esto, cree el SP que lista los corredores expulsados en un campeonato. Mas que todo los errores que nos encontramos fueron de sintaxis de SQL para cual consultamos mucho la documentacion de Microsoft:https://msdn.microsoft.com/en-us/library/bb510741.aspx .
Horas totales: 21
Alejandro Rosales
Cierrre
Hoy fue el mayor trabajo que realize, como ya casi toda la parte visual se tenia , se enfoco en el sql, luego de terminar los SP necesarios, termine de linkear visual studio con sql
Horas trabajadas: 13
Horas trabajadas: 13
domingo, 4 de octubre de 2015
Al cargar la lista de corredores se encontro otro problema, hay que crea la tabla CampeonatoXCorredores luego de insertar cada corredor. Intentado varias tecnicas decidimos cargar los corredores a una tabla #temp. Se lee la tabla 1 por 1 usando un Cursor. Al leer cada linea, primero se crea el corredor correspondiente, y luego el elemento en CampeonatoXCorredor. Previamente se habia guardado el PK del campeonato en una variable usando la funcion SCOPE_IDENTITY(), para conseguir el key del corredor, se retorna el PK en la funcion que inserta un elemento a esta tabla. De esta forma se implementa:
...
set @IDCamp = SCOPE_IDENTITY()
EXEC sp_xml_preparedocument @hdoc OUTPUT, @x
SELECT * INTO #temp
FROM OPENXML (@hdoc, '/Campeonato/Corredores/Participante', 1)
WITH (Nombre varchar(50), Identificación int, FechaNacimiento date, Genero varchar(50), Email varchar(50), SobreNombre varchar(50))
Declare @TNombre varchar(50),@TIdentificacion int ,@TFechaNacimiento date ,@TGenero varchar(50),@TCorreo varchar(50),@TClave varchar(50)
Declare CT Cursor scroll
For SELECT Nombre,Identificación, FechaNacimiento , Genero , Email , SobreNombre From #temp
Open CT
Fetch first from CT INTO @TNombre,@TIdentificacion ,@TFechaNacimiento,@TGenero ,@TCorreo ,@TClave
while @@FETCH_STATUS = 0
BEGIN
exec @IDCorr = CorredorInsertar @TNombre,@TIdentificacion ,@TGenero ,@TFechaNacimiento ,@TCorreo ,@TClave
exec CampeonatoXCorredorInsertar @IDCamp, @IDCorr, 0, '00:00:00',0,0
Fetch next from CT INTO @TNombre,@TIdentificacion ,@TFechaNacimiento,@TGenero ,@TCorreo ,@TClave
END
...
Luego, cree el procedimiento que lista la informacion de los corredores expulsados en un campeonato. Se hace con un simple select.
Select Corredor.CorredorID,Corredor.Nombre,Corredor.Identificacion,Corredor.Correo,Corredor.FechaNacimiento,Corredor.Genero
from Corredor,CampeonatoXCorredor where CampeonatoXCorredor.FKCorredor = Corredor.CorredorID AND CampeonatoXCorredor.FKCampeonato = @IDCampeonato AND CampeonatoXCorredor.Estado = 1
Horas: 6
Alejandro Rosales
...
set @IDCamp = SCOPE_IDENTITY()
EXEC sp_xml_preparedocument @hdoc OUTPUT, @x
SELECT * INTO #temp
FROM OPENXML (@hdoc, '/Campeonato/Corredores/Participante', 1)
WITH (Nombre varchar(50), Identificación int, FechaNacimiento date, Genero varchar(50), Email varchar(50), SobreNombre varchar(50))
Declare @TNombre varchar(50),@TIdentificacion int ,@TFechaNacimiento date ,@TGenero varchar(50),@TCorreo varchar(50),@TClave varchar(50)
Declare CT Cursor scroll
For SELECT Nombre,Identificación, FechaNacimiento , Genero , Email , SobreNombre From #temp
Open CT
Fetch first from CT INTO @TNombre,@TIdentificacion ,@TFechaNacimiento,@TGenero ,@TCorreo ,@TClave
while @@FETCH_STATUS = 0
BEGIN
exec @IDCorr = CorredorInsertar @TNombre,@TIdentificacion ,@TGenero ,@TFechaNacimiento ,@TCorreo ,@TClave
exec CampeonatoXCorredorInsertar @IDCamp, @IDCorr, 0, '00:00:00',0,0
Fetch next from CT INTO @TNombre,@TIdentificacion ,@TFechaNacimiento,@TGenero ,@TCorreo ,@TClave
END
...
Luego, cree el procedimiento que lista la informacion de los corredores expulsados en un campeonato. Se hace con un simple select.
Select Corredor.CorredorID,Corredor.Nombre,Corredor.Identificacion,Corredor.Correo,Corredor.FechaNacimiento,Corredor.Genero
from Corredor,CampeonatoXCorredor where CampeonatoXCorredor.FKCorredor = Corredor.CorredorID AND CampeonatoXCorredor.FKCampeonato = @IDCampeonato AND CampeonatoXCorredor.Estado = 1
Horas: 6
Alejandro Rosales
sábado, 3 de octubre de 2015
Store procedures
Hoy me di cuenta que estaba haciendo los store procedure capa logica, y busque un video para saber como conectarlos con el sql con este video, tambien hice los botones de home y ademas, aprendi que algunos botones se les puede quitar el control de validacion. y cargue bien las tablas.
Horas: 1:32
Alonso Rivas Solano
Horas: 1:32
Alonso Rivas Solano
Mejorando el website
Empeze terminando la subscripcion de corredores que deje ayer a la mitad, segui con los videos que habia comenzado para poder terminar la subcripcion y tambien hacer un sistema de usuarios, ya que los corredores no puede hacer modificaciones, solo consultas, los videos me facilitaron mucho el codigo, y muy pocas veces investigue fuera de esos videos. Luego busque la manera de poder actualizar las tablas, ya que era uno de los puntos, la programada de hoy fue normal, no se presentaron problemas.
Horas: 5
Alonso Rivas Solano
Alonso Rivas Solano
Empeze modificando los atributos de la tabla Corredor, ya que nos faltaban dos campos, Identificacion, y Genero. Tambien modifique los procedimientos correspondientes. Luego empezea diseñar el procedure que lee el archivo xml. Para la tabla de campeonato fue implementado de esta manera:
Declare @x xml
Select @x = P
From OPENROWSET (BULK 'C:\Bases\XMLBases.xml', SINGLE_BLOB) AS XMLBases(P)
DECLARE @hdoc int
EXEC sp_xml_preparedocument @hdoc OUTPUT, @x
INSERT INTO [dbo].[Campeonato]
( Nombre,FechaInicio,FechaFinal)
SELECT *
FROM OPENXML (@hdoc, '/Campeonato', 1)
WITH (Nombre varchar(50), FechaInicio DATE, FechaFin DATE )
De una manera similar se buscaba implementar el procedimiento para la tabla de corredores, pero hubo un problema. Nos salia el siguiente error: Conversion failed when converting date and/or time from character string.
Declare @x xml
Select @x = P
From OPENROWSET (BULK 'C:\Bases\XMLBases.xml', SINGLE_BLOB) AS XMLBases(P)
DECLARE @hdoc int
EXEC sp_xml_preparedocument @hdoc OUTPUT, @x
INSERT INTO [dbo].[Campeonato]
( Nombre,FechaInicio,FechaFinal)
SELECT *
FROM OPENXML (@hdoc, '/Campeonato', 1)
WITH (Nombre varchar(50), FechaInicio DATE, FechaFin DATE )
De una manera similar se buscaba implementar el procedimiento para la tabla de corredores, pero hubo un problema. Nos salia el siguiente error: Conversion failed when converting date and/or time from character string.
Despues de mucho tiempo intentando varias soluciones como usando set dateformat, y modificando el xml, nos dimos cuenta que el archivo de xml trae un error. El 6to corredor listado trae su fecha de nacimiento en un formato diferente a los demas, mientras que los demas listan su fecha con el formato dd-mm-yyyy, este campo esta en formato mm-dd-yyyy. Asi, lo resolvimos modificando esta fecha en el xml.
Horas: 4 y media
Alejandro Rosales
Alejandro Rosales
Suscribirse a:
Entradas (Atom)