Ir al contenido principal

Entradas

Mostrando entradas de marzo, 2023

11. Creación y solución de problemas en la implementación de Store Procedures para filtrar artículos por nombre

Día: 30/03/2023 Desde: 12:30 pm / Hasta: 2:30 pm Tiempo transcurrido: 2 horas En nuestra última sesión de trabajo nos enfocamos en la codificación de los procedimientos almacenados para filtrar artículos por su nombre. Para ello, utilizamos como referencia el código resultante de la sesión anterior y lo adaptamos a nuestras necesidades. Durante el proceso, encontramos algunos desafíos que debimos solucionar. En primer lugar, nos tomó tiempo entender la estructura del procedimiento almacenado y cómo se relaciona con la base de datos. Afortunadamente, logramos comprenderlo gracias a la documentación oficial del framework. Una vez que entendimos la estructura básica del procedimiento almacenado, comenzamos a trabajar en la codificación. Sin embargo, nos encontramos con algunos errores que debimos solucionar. Uno de los mayores desafíos fue asegurarnos de que la salida del código fuera la correcta. Para ello, utilizamos varios mensajes de salida para verificar que todo funcionara correct...

10. Implementación de procedimientos almacenados para filtrar artículos por nombre, cantidad y clase en SQL

Día: 29/03/2023 Desde: 5:15 pm / Hasta: 7:15 pm Tiempo transcurrido: 2 horas En esta tarea programada, se nos pidió codificar en SQL los procedimientos almacenados para filtrar artículos por su nombre, cantidad y clase. Comenzamos revisando los requisitos y los datos necesarios para implementar los procedimientos. Para filtrar los artículos por su nombre, utilizamos la función LIKE en SQL y filtramos los resultados por la cadena de caracteres que se le pase como parámetro. Para filtrar los artículos por su cantidad, utilizamos las cláusulas WHERE y BETWEEN en SQL para filtrar los resultados por la cantidad mínima y máxima que se le pase como parámetros. Finalmente, para filtrar los artículos por su clase, utilizamos las cláusulas INNER JOIN y WHERE en SQL para unir las tablas Articulo y ClaseArticulo y filtrar los resultados por el nombre de la clase que se le pase como parámetro. En cuanto a la forma en que trabajamos en equipo, nos dividimos las tareas y trabajamos de manera individu...

9. Implementación filtra clase artículo

 Día: 27/03/2023 Desde: 4:50 pm / Hasta: 6:30 pm Tiempo transcurrido: 1 hora 40 minutos Hoy hemos avanzado en la implementación de un nuevo procedimiento almacenado en nuestro sistema. El objetivo de este procedimiento es filtrar los artículos por su clase. Para ello, se ha creado el procedimiento SP_SeleccionarClaseArt, que toma como entrada el nombre de la clase de artículo, el nombre del usuario, la dirección IP, la hora de la consulta y un parámetro de salida que indica el resultado de la operación. Inicialmente, nos encontramos con algunos problemas al validar la entrada. Se ha realizado una validación para asegurarnos de que el parámetro de entrada no sea nulo. También se ha verificado que los valores de IP y usuario no sean nulos, para evitar errores al insertar los registros en la tabla de log. Una vez que se realizaron las validaciones correspondientes, se ha procedido a obtener el identificador de la clase de artículo, lo que nos permitirá obtener los artículos relacionad...

8. Implementación filtra cantidad

Día: 27/03/2023 Desde: 4:50 pm / Hasta: 6:30 pm Tiempo transcurrido: 1 hora 40 minutos En esta entrada de bitácora, se detallará el proceso de desarrollo del procedimiento almacenado SP_SeleccionarCantidad y cómo se implementó el filtro de cantidad basándose en el filtro por nombre. Inicialmente, nos enfocamos en entender el código existente y en revisar los requerimientos para implementar el filtro por cantidad. Revisamos el código del procedimiento almacenado SP_SeleccionarNombre, que ya tenía un filtro por nombre implementado, y decidimos utilizarlo como base para implementar el filtro por cantidad.                                                   Creamos una copia del procedimiento almacenado SP_SeleccionarNombre y lo renombramos como SP_SeleccionarCantidad. Luego, hicimos las modificaciones necesarias para implementar el filtro por c...

7. Cambios estéticos y de estructura en el diseño de la interfaz

Día: 26/03/2023 Desde: 4:50 pm / Hasta: 6:30 pm Tiempo transcurrido: 1 hora 40 minutos Se han hecho unos cambios a la interfaz de la tabla de artículos y la página de insertar artículo, esto debido a que ahora se necesitan nuevos botones y cajas de texto para filtrar los artículos, al igual que un nuevo botón y una lista para insertar la clase de artículo.                                      También los botones de insertar y salir que antes se encontraban debajo de la tabla los hemos movido ahora por encima de la tabla tal como se esta pidiendo en esta segunda tarea junto con un cuadro por encima de la tabla a mostrar artículos. En la interfaz para insertar un nuevo artículo hemos agregado una caja de lista dropdown que enlista en orden alfabético las tres clases de artículo disponibles a insertar. Por default se tiene seleccionada la clase de artículo ...

6. Actualización del Store Procedure SP_InsertarArtículo para referenciar a la tabla ClaseArticulo como foreign key

Día: 26/03/2023 Desde: 10:15 am / Hasta: 12:00 pm Tiempo transcurrido: 1 hora 45 minutos  Se modificó el store procedure SP_InsertarArtículo para que pudiera recibir como parámetro el nombre de la clase de artículo, el cual sería insertado por medio de su ID a la tabla Articulo como foreign key referenciando a la tabla ClaseArticulo. Para hacer esto, primero revisamos el código del store procedure y nos dimos cuenta de que debíamos agregar un nuevo parámetro para recibir el nombre de la clase de artículo. Luego, verificamos si la clase de artículo existía en la tabla ClaseArticulo y obtener su ID correspondiente. Una vez que obtuvimos el ID de la clase de artículo, lo utilizamos para insertar el nuevo registro en la tabla Articulo como foreign key referenciando a la tabla ClaseArticulo. En cuanto a la forma en que trabajamos en equipo, nos dividimos las tareas y trabajamos de manera individual, pero siempre estuvimos en comunicación para compartir nuestras dudas y avances. En gener...

5. Implementación de página de login en ASP.NET con llamado a procedimiento almacenado de verificación

Día: 25/03/2023 Desde: 1:00 pm / Hasta: 2:45 pm Tiempo transcurrido: 1 hora 45 minutos Hemos realizado el código desde asp.net para llamar el procedimiento almacenado SP_VerificarUsuario enviando el parámetro del nombre y la contraseña el valor de las cajas de texto escritas por el usuario desde PageLog.aspx. Para ello usamos como referencia esta página: https://www.csharpcorner.com/UploadFile/009464/simple-login-form-in-Asp-Net-using-C-Sharp/ . Para establecer la página de login como la página inicial predeterminadamente nos ha servido esta página https://social.msdn.microsoft.com/forums/en-US/2157c314-b357-47b7-b29e-2ebf1ad6cd6b/how-to-set-in-visual-studio-startup-page-in-web-config?forum=aspwebforms. Una vez el usuario hace click en el botón de login se llama a la función LogButton_Click en c# el cual llama y ejecuta al store procedure y en base al código de salida permite al usuario ingresar a la siguiente página o bien le indica un mensaje de error desde la pantalla. T...

4. Corrección de SP_ImportarDatosXML y validación del login

Día: 24/03/2023 Desde: 6:30 pm / Hasta: 8:30 pm Tiempo transcurrido: 2 horas En la sesión de hoy, nos enfocamos en solucionar problemas con el Store Procedure SP_ImportarDatosXML, el cual estaba presentando errores al leer correctamente el archivo XML localizado en la ruta respectiva en el ordenador por medio de la función OPENROWSET. Para solucionar este problema, utilizamos como referencia la página web https://www.mssqltips.com/sqlservertip/5707/simple-way-to-import-xml-data-into-sql-server-with-tsql/ y después de varias revisiones, corregimos la ruta del archivo XML para que el Store Procedure pudiera funcionar correctamente. Posteriormente, realizamos otro Store Procedure para validar el usuario en la página de login, el SP_VerificarUsuario. Este Store Procedure recibe como parámetros el nombre de usuario, la contraseña y el código de salida en 0, y se basa en la página https://stackoverflow.com/questions/8895039/easiest-way-to-validate-user-in-stored-procedure para realizar...

3. Solución de problemas al implementar un Store Procedure para leer archivos XML en SQL Server

Día: 20/03/2023 Desde: 2:10 pm / Hasta: 4:20 pm Tiempo transcurrido: 2 horas 10 minutos Comenzamos esta sesión implementando un Store Procedure para leer archivos XML, utilizando como referencia la página web https://www.mssqltips.com/sqlservertip/5707/simple-way-to-import-xml-data-into-sql-server-with-tsql/. Aunque la página nos brindó una guía clara y sencilla para la implementación del Store Procedure, nos encontramos con algunos problemas que debimos solucionar. Primero, el Store Procedure no funcionaba correctamente y nos daba como resultado una tabla vacía. Después de revisar el código varias veces, descubrimos que el problema estaba en la ruta del archivo XML que intentábamos leer. Corregimos la ruta y el Store Procedure funcionó correctamente. El segundo problema que encontramos fue al intentar insertar los datos del archivo XML en una tabla temporal. Recibimos un mensaje de error que decía "The data types nvarchar and xml are incompatible in the equal to operator". I...

2. Diseño de la interfaz de login y programación de funciones en ASP.NET

Día: 16/03/2023 Desde: 3:45 pm / Hasta: 5:15 pm Tiempo transcurrido: 1 hora 30 minutos Basándonos en este video https://www.youtube.com/watch?v=pDeqQ19wtMs&list=LL&index=17 y en esta página https://www.c-sharpcorner.com/UploadFile/009464/simple-login-form-in-Asp-Net-using-C-Sharp/ , trabajamos hoy el diseño de la página de login. En esta sesión de trabajo, nos enfocamos en la creación de la página de login para nuestro proyecto. En primer lugar, consultamos un tutorial en línea y trabajamos en el diseño utilizando HTML y CSS. El proceso de diseño nos tomó la mayor parte del tiempo, ya que no teníamos mucha experiencia con estos lenguajes.                                              Luego de finalizar el diseño, procedimos a trabajar en la programación de las funciones desde la capa lógica, tanto en C# como en HTML. Este proceso fue más sencil...

1. Creación de las primeras tablas y corrección de errores relacionados con los constraint

Día: 15/03/2023 Desde: 11:00 am / Hasta: 12:30 pm Tiempo transcurrido: 1 hora 30 minutos Comenzamos la segunda tarea del curso con muchas ganas y dedicación. La primera acción que llevamos a cabo fue la creación de las tablas Usuario, ClaseArticulo y EventLog a través del diagramador en SSMS, respetando los nombres y constraints especificados en la tarea y enseñados por el profesor en clase. En un principio, no tuvimos mayores problemas en la creación de las tablas, ya que seguimos al pie de la letra las instrucciones del profesor y respetamos los nombres y constraints especificados. Sin embargo, más tarde encontramos algunos errores que debimos solucionar. El primer problema que encontramos fue al intentar insertar datos en la tabla Usuario. Recibimos un mensaje de error que decía "The INSERT statement conflicted with the FOREIGN KEY constraint". Después de revisar la tabla y los datos que intentábamos insertar, descubrimos que estábamos intentando insertar un valor en la co...

Comienzo de la segunda tarea programada - Investigación de importación XML

Día: 14/03/2023 Desde: 1:00 pm / Hasta: 2:30 pm Tiempo transcurrido: 1 hora 30 minutos En esta entrada de bitácora se relata el inicio de la segunda tarea programada, que incluye la investigación sobre cómo leer los datos de un archivo XML e importarlos en las tablas correspondientes de la base de datos, así como también mapear el id de ClaseArticulo con respecto a su nombre. El primer paso fue investigar diferentes formas de importar datos de un archivo XML a una base de datos SQL Server. Se encontraron varias opciones, entre las que se incluyen el uso de OPENROWSET y BULK INSERT. Se decidió utilizar el método de OPENROWSET porque nos permitiría leer el archivo XML directamente en la variable @XmlData. Para obtener información detallada sobre cómo importar datos de un archivo XML usando OPENROWSET, consultamos la página de Microsoft Docs. Una vez que se leyó el archivo XML, se procedió a importar los datos a la tabla Usuario. Luego, se importaron los datos a la tabla ClaseArticulo, lo...

21. Configuración final de la bitácora y finalización del proyecto

Día: 04/03/2023 Desde:  2:45 pm / Hasta: 4:23 pm Tiempo transcurrido: 1 hora 22 minutos Hoy, culminamos el proyecto de bases de datos en el que hemos estado trabajando durante estas últimas 3 semanas. Durante las últimas semanas, nos hemos enfocado en finalizar y detallar cada aspecto del proyecto para asegurarnos de que todo esté en orden antes de la entrega final. En primer lugar, revisamos todas nuestras entradas anteriores en la bitácora del proyecto y corregimos cualquier error en la redacción o información errónea. También agregamos más detalles y aclaraciones a algunas entradas para asegurarnos de que reflejen con precisión nuestro progreso y aprendizaje durante el proyecto. Luego, dedicamos tiempo a pulir y mejorar el diseño de nuestro proyecto. Buscamos la forma de comentar más el código del proyecto y dejarlo presentable para el día de la entrega. Revisamos en las especificaciones que no quedara ninguna instrucción pendiente por aplicar. Finalmente, probamos nuestro proye...

20. Actualización de la interfaz aplicando css

Día: 04/03/2023 Desde: 9:30 am / Hasta: 10:30 am Tiempo transcurrido: 1 hora Finalmente, practicamos la implementación de CSS en nuestro proyecto, creando una hoja de estilos separada y aplicando diferentes estilos y diseños a nuestros elementos HTML. Experimentamos con diferentes fuentes, colores, diseños de página y tamaños de texto para encontrar la mejor combinación para nuestro proyecto. En resumen, hemos aprendido cómo implementar CSS en nuestro proyecto de bases de datos para mejorar su diseño visual y la usabilidad. Ahora que aplicamos estos cambios a la tarea programada creemos que la experiencia del usuario puede ser más agradable a la vista, además de que aplicamos un nuevo concepto que no habíamos hecho antes.

19. Investigación sobre la implementación de css en el proyecto

Día: 02/03/2023 Desde:  9:00 pm / Hasta: 10:00 pm Tiempo transcurrido: 1 hora Hoy nos enfocamos en la implementación de CSS en nuestro proyecto de bases de datos. Nuestro objetivo es mejorar el diseño visual de nuestro programa web originalmente hecho en HTML. Investigamos y discutimos las diferentes formas en que podemos usar CSS para mejorar el aspecto y la funcionalidad de nuestro sitio web. Primero, aprendimos los conceptos básicos de CSS, como la sintaxis, las reglas y las propiedades, así como las diferentes formas de implementar CSS en nuestro proyecto. Después de eso, exploramos cómo podemos usar CSS para aplicar estilos a elementos específicos de HTML, como texto, imágenes y tablas. (Tomando como referencia el video: https://www.youtube.com/watch?v=cdBzdx6_gjA) También investigamos cómo podemos mejorar la usabilidad y la accesibilidad de nuestro sitio web mediante la implementación de CSS. Discutimos la importancia de la consistencia en el diseño y cómo podemos usar CSS pa...

18. Se estructura el documento referente al análisis de resultados

Día: 02/03/2023 Desde:  1:20 pm / Hasta: 3:12 pm Tiempo transcurrido: 1 hora 52 minutos Hoy en el proyecto del curso de Bases de Datos, se llevó a cabo la creación del documento formal respecto al análisis de los resultados de nuestra prueba de concepto. El equipo de trabajo se reunió para establecer la estructura, contenidos y títulos que este documento va a tener. Para comenzar, se elaboró una introducción que explica la prueba de concepto y su importancia dentro del proyecto. Se acordó que el documento se dividiría en varias secciones, comenzando con una descripción general del proyecto y una explicación detallada de la prueba de concepto. Posteriormente, se incluirían las tablas de métricas que contabilizan todas las estadísticas del proyecto, así como los resultados obtenidos. Durante la reunión, se discutió la importancia de establecer una estructura clara y coherente en el documento. Para ello, se definieron los títulos y subtítulos que se utilizarán en cada sección, así com...

17. Creación de las validaciones en el SP_InsertarArticulo

Día: 01/03/2023 Desde:  9:00 pm / Hasta: 10:30 pm Tiempo transcurrido: 1 hora 30 minutos Hoy se llevó a cabo la implementación de las validaciones dentro del query SQL del procedimiento almacenado llamado SP_InsertarArticulo. Esta tarea fue asignada luego de la revisión de los requerimientos del proyecto y se había planificado en sesiones anteriores. El objetivo principal de esta tarea era garantizar que los datos ingresados en el formulario para agregar nuevos artículos fueran validados antes de ser almacenados en la base de datos. Se implementaron las siguientes validaciones: 1. En el campo de nombre del artículo solo se permiten caracteres alfabéticos o guiones. 2. Los nombres de los artículos no se pueden repetir. 3. Los valores ingresados en el campo de precio deben ser valores monetarios correctos. 4. No se permiten campos vacíos. Para lograr esto, se utilizó la estructura condicional "if" dentro del query SQL del procedimiento almacenado, utilizando los códigos de erro...

16. Implementación final de los stored procedures e integración con la capa lógica

Día: 01/03/2023 Desde:  1:00 pm / Hasta: 3:00 pm Tiempo transcurrido: 2 horas Hoy finalizamos la integración de los procedimientos almacenados SP_Mostrar y SP_InsertarArticulo en la versión oficial de la interfaz web de nuestro proyecto de bases de datos. Después de verificar y depurar todo en las últimas sesiones, logramos incluir la ejecución de los procedimientos y eliminar el SQL incrustado en la capa lógica. Realizamos pruebas exhaustivas para asegurarnos de que todo funcionaba correctamente y no se produjeron errores en la ejecución de los procedimientos. Estamos muy contentos de haber completado la conexión de los procedimientos almacenados con el programa web, ya que esto aumentará la eficiencia y la estandarización del código. En general, esta experiencia nos enseñó la importancia de tener una buena planificación y verificación antes de integrar cualquier componente en nuestro proyecto. También destacamos la importancia de utilizar procedimientos almacenados en lugar de SQ...