lunes, 21 de abril de 2014

Migración de la Base No Normalizada

Creador del Post: Javier Gómez Madrigal
Hora Inicio: 17:00 Hora Fin: 19:00
Horas Trabajadas: 2

Se realizó la migración de datos de una base no normalizada. Se tuvo que arreglar los datos propiciados por el profesor, puesto que no estaban bien y no eran muy útiles. Luego de arreglar los datos, se crearon los procedures para que se migren los datos.

GO
CREATE PROCEDURE MIGRAR_MIEMBROS
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [MEMBRESIACANCIONES].[dbo].[MC_MIEMBRO]
SELECT DISTINCT N.[Nombre del cliente], N.Correo, N.Cuenta, N.Contraseña, N.Saldo, N.[Cantidad Compras], N.[Miembro Activo], N.[Post By], N.[Post In], N.[Post Date]
FROM [DatosPruebaCanciones].[dbo].[CancionesXMiembro] AS N
END
GO

-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE MIGRAR_ADMINISTRADORES
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO MEMBRESIACANCIONES.dbo.MC_ADMINISTRADOR
SELECT DISTINCT N.[Nombre Administrador], N.Contraseña
FROM [DatosPruebaCanciones].[dbo].[Administradores] AS N
END
GO

-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE MIGRAR_INTERPRETES
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO MEMBRESIACANCIONES.dbo.MC_INTERPRETE
SELECT DISTINCT N.Interprete, N.Activo, N.[Post By], N.[Post In], N.[Post Date]
FROM [DatosPruebaCanciones].[dbo].[CancionesXMiembro] AS N
END
GO

-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE MIGRAR_CANCIONES
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO MEMBRESIACANCIONES.dbo.MC_CANCION
SELECT I.ID, N.Cancion, CAST(CAST(N.Logo AS VARCHAR(64)) AS IMAGE), N.[Fecha Operacion], N.[Cantidad vendida], N.Activo, N.[Post By], N.[Post In], N.[Post Date]
FROM [DatosPruebaCanciones].[dbo].[CancionesXMiembro] AS N
INNER JOIN MEMBRESIACANCIONES.dbo.MC_INTERPRETE AS I ON I.NOMBRE = N.Interprete
END
GO

-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_MIGRACION
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
EXEC MIGRAR_MIEMBROS
EXEC MIGRAR_ADMINISTRADORES
EXEC MIGRAR_INTERPRETES
EXEC MIGRAR_CANCIONES
COMMIT TRANSACTION
END
GO

EXEC SP_MIGRACION
-----------------------------------------------------------------------------------------------------------------------

domingo, 20 de abril de 2014

Conexión: Base de Datos y Aplicación de Escritorio Final


Creador del post: Edward Ovares Villegas.
Inicio: 17:00 Fin: 22:30
Horas trabajadas: 4.5

Se finalizó las conexiones entre la Base de Datos y la Aplicación de escritorio. También se realizó la comunicación entre el Model, View y Controller.

Finalización de la conexión con la base de datos

Creador del Post: Javier Gómez Madrigal
Hora Inicio: 16:00 Hora Fin: 20:30
Horas Trabajadas: 4.5

Se realizó la conexión con el último procedure, compra de canción. Este presentó problemas a la hora de probarlo, ya que los movimientos que este creaba no eran accesibles o tiraba problemas con la transacción. Se le realizó un cambio y con esto se logró hacer funcionar. Luego de esto se realizó la conexión.

sábado, 19 de abril de 2014

Conexión: Base de Datos y Aplicación de Escritorio 4


Creador del post: Edward Ovares Villegas.
Inicio: 18:30 Fin: 23:00
Horas trabajadas: 4.5

Se terminó de realizar el Controller de Canciones así como las conexiones de este. También se trabajó en la comunicación entre el Model, View y Controller correspondientes a la canción y se solucionaron unos errores anteriores de la conexión entre la base de datos y la aplicación.

Continuación con la conexión a la base de datos

Creador del Post: Javier Gómez Madrigal
Hora Inicio: 15:00 Hora Fin: 18:00
Horas Trabajadas: 3

Se realizó la conexión de 2 procedures más, la consulta de movimientos y la bajada de una canción.

 public DataSet consultaMovimientos(String pMiembro)
        {
            try
            {
                conection.Open();
                procedure = new SqlCommand("CONSULTA_MOVCANCXMIEMBRO", conection);
                procedure.CommandType = CommandType.StoredProcedure;
                adapter = new SqlDataAdapter();
                procedure.Parameters.Add("@MIEMBRO", SqlDbType.VarChar, 50, "@MIEMBRO");
                procedure.Parameters["@MIEMBRO"].Value = pMiembro;
                adapter.SelectCommand = procedure;
                procedure.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
                procedure.ExecuteNonQuery();
                int cod = (int)procedure.Parameters["@RETURN_VALUE"].Value;
                conection.Close();
                if (cod > 0)
                {
                    data = new DataSet();
                    adapter.Fill(data);
                    return data;
                }
                else
                {
                    return null;
                }
            }
            catch (Exception)
            {
                conection.Close();
                return null;
            }
        }

        public int bajadaCancion(int pID, String pIP, String pPostBy, String pPostIn)
        {
            try
            {
                conection.Open();
                procedure = new SqlCommand("BAJADA_CANCION", conection);
                procedure.CommandType = CommandType.StoredProcedure;
                procedure.Parameters.Add("@ID_MOVCANCION", SqlDbType.Int);
                procedure.Parameters["@ID_MOVCANCION"].Value = pID;
                procedure.Parameters.Add("@IP", SqlDbType.VarChar, 50, "@IP");
                procedure.Parameters["@IP"].Value = pIP;
                procedure.Parameters.Add("@POST_BY", SqlDbType.VarChar, 30, "@POST_BY");
                procedure.Parameters["@POST_BY"].Value = pPostBy;
                procedure.Parameters.Add("@POST_IN", SqlDbType.VarChar, 30, "@POST_IN");
                procedure.Parameters["@POST_IN"].Value = pPostIn;
                procedure.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
                procedure.ExecuteNonQuery();
                int cod = (int)procedure.Parameters["@RETURN_VALUE"].Value;
                conection.Close();
                if (cod > 0)
                {
                    return 1;
                }
                else
                {
                    return -1;
                }
            }
            catch (Exception)
            {
                conection.Close();
                return -1;
            }
        }

viernes, 18 de abril de 2014

Continuación de la conexión con la base de datos

Creador del Post: Javier Gómez Madrigal
Hora Inicio: 14:00 Hora Fin: 20:00
Horas Trabajadas: 6

Se realizó al conexión de 3 Procedures más, la selección de las 10 más vendidas, el login de usuario y el insertar usuario.

public DataTable top10Canciones()
        {
            try
            {
                conection.Open();
                procedure = new SqlCommand("ORDENAR_CANCIONES", conection);
                procedure.CommandType = CommandType.StoredProcedure;
                adapter = new SqlDataAdapter();
                adapter.SelectCommand = procedure;
                procedure.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
                procedure.ExecuteNonQuery();
                int cod = (int)procedure.Parameters["@RETURN_VALUE"].Value;
                conection.Close();
                if (cod > 0)
                {
                    datos = new DataTable();
                    adapter.Fill(datos);
                    return datos;
                }
                else
                {
                    return null;
                }
            }
            catch (Exception)
            {
                conection.Close();
                return null;
            }
        }

        public int loginUsuario(String pUsername, String pPassword)
        {
            try
            {
                conection.Open();
                procedure = new SqlCommand("LOGIN_USUARIO", conection);
                procedure.CommandType = CommandType.StoredProcedure;
                procedure.Parameters.Add("@USERNAME", SqlDbType.VarChar, 50, "@USERNAME");
                procedure.Parameters["@USERNAME"].Value = pUsername;
                procedure.Parameters.Add("@PASSWORD", SqlDbType.VarChar, 30, "@PASSWORD");
                procedure.Parameters["@PASSWORD"].Value = pPassword;
                procedure.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
                procedure.ExecuteNonQuery();
                int cod = (int)procedure.Parameters["@RETURN_VALUE"].Value;
                conection.Close();
                if (cod > 0)
                {
                    return 1;
                }
                else
                {
                    return -1;
                }
            }
            catch (Exception)
            {
                conection.Close();
                return -1;
            }
        }

        public int insertarUsuario(String pNombre, String pEmail, String pCuenta, String pClave, String pNumTarjeta, String pFechaExp, String pPostBy, String pPostIn)
        {
            try
            {
                conection.Open();
                procedure = new SqlCommand("INSERTAR_USUARIO", conection);
                procedure.CommandType = CommandType.StoredProcedure;
                procedure.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 50, "@NOMBRE");
                procedure.Parameters["@NOMBRE"].Value = pNombre;
                procedure.Parameters.Add("@EMAIL", SqlDbType.VarChar, 50, "@EMAIL");
                procedure.Parameters["@EMAIL"].Value = pEmail;
                procedure.Parameters.Add("@CUENTA", SqlDbType.VarChar, 50, "@CUENTA");
                procedure.Parameters["@CUENTA"].Value = pCuenta;
                procedure.Parameters.Add("@CLAVE", SqlDbType.VarChar, 30, "@CLAVE");
                procedure.Parameters["@CLAVE"].Value = pClave;
                procedure.Parameters.Add("@NUM_TARJETA", SqlDbType.VarChar, 20, "@NUM_TARJETA");
                procedure.Parameters["@NUM_TARJETA"].Value = pNumTarjeta;
                procedure.Parameters.Add("@FECHA_EXP", SqlDbType.VarChar, 20, "@FECHA_EXP");
                procedure.Parameters["@FECHA_EXP"].Value = pFechaExp;
                procedure.Parameters.Add("@POST_BY", SqlDbType.VarChar, 20, "@POST_BY");
                procedure.Parameters["@POST_BY"].Value = pPostBy;
                procedure.Parameters.Add("@POST_IN", SqlDbType.VarChar, 20, "@POST_IN");
                procedure.Parameters["@POST_IN"].Value = pPostIn;
                procedure.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
                procedure.ExecuteNonQuery();
                int cod = (int)procedure.Parameters["@RETURN_VALUE"].Value;
                conection.Close();
                if (cod > 0)
                {
                    return 1;
                }
                else
                {
                    return -1;
                }
            }
            catch (Exception)
            {
                conection.Close();
                return -1;
            }
        }

jueves, 17 de abril de 2014

Conexión: Base de Datos y Aplicación de Escritorio 3


Creador del post: Edward Ovares Villegas.
Inicio: 13:30 Fin: 18:00
Horas trabajadas: 4.5

Se trabajó en el Controller, en si en la conexión de datos en la parte correspondiente a la canción, así como en la comunicación entre el Model, View y Controller de la aplicación. También se solucionaron errores anteriores de la aplicación.