Tuesday, July 14, 2020

Entrada 9


Esta entrada se realiza el mismo día que la entrada anterior mas con una significante diferencia de hora puesto que uno de los integrantes del equipo tenía compromisos con otro grupo de trabajo

En esta reunión se implementó la operación de cambio de valor a la propiedad. Para esta funcionalidad se declaró una variable tabla la cual almacenará los datos que provienen del archivo xml.



Seguidamente se realiza un procedimiento de iteración igual al del resto de variables tabla. Luego se procederá a actualizar la tabla Propiedad, específicamente el campo de valor y se le asignará el valor que venga dentro del xml. Asimismo, se agregó a la base de datos una tabla llamada HistorialCambiosFinca en la cual se almacena un detalle de las fincas a las que les ha realizado un cambio de valor. Esta tabla solamente sirve como un comprobante de que se está realizando esta operación pues sería invisible al usuario ya que al leer el archivo xml de operaciones realiza la inserción de la propiedad y luego la operación de cambio de valor por lo que se sobreescribiría este dato.




Labores realizadas


  • Implementación de la operación Cambio de Valor de una Propiedad
  • Corrección de errores generados por los cambios en el script de simulación por la implementación de dicha operación
  • Creación de la tabla HistorialCambiosFinca


Duración de la reunión: 2 horas y media

Entrada 8

Como se mencionó en la entrada anterior, se agregó un campo dentro de las variables tabla para poder iterar a través de esta y disponer de ella.

Labores realizadas


  • Creación del ciclo para iterar usando las fechas
  • Corrección de pulgas generadas a causa de este cambio

Esto se realiza igual que el resto de iteraciones en las cuales se almacena en variables el id más bajo de los registros así como el más grande.




Imagen que demuestra la manera de realizar la iteración.


Duración de la reunión: 1 hora y media

Monday, July 13, 2020

Entrada 7

El día de hoy se realizó la séptima reunión para la segunda tarea programada. En entradas anteriores se comentó que se había logrado implementar la simulación; no obstante, se encontró un error pues no la estábamos realizando por fechas, por lo que se decidió agregar un campo dentro de las variables tabla el cual almacenaría las fechas en las que se realizaban las operaciones.

Labores realizadas


  • Actualización en la declaración de todas las variables tabla utilizadas en la simulación para hacerla iterando a través de las fechas.
  • Cambios en la manera de realizar la inserción masiva a las variables tabla.
  • Debugging del script de simulación.

Imagen donde se evidencia el campo que almacenará las fechas.


Imagen donde se evidencia la inserción masiva utilizando el nuevo campo de fecha.


Duración de la reunión: 3 horas








Sunday, July 12, 2020

Entrada 6

Como ya teniamos los valores adentro de las tablas, decidí implementar el primer trigger y una consulta que funcionara con fechas para poder realizar la búsqueda dentro de la tabla bitácora.

Labores realizadas

  • Creación de las consultas para la búsqueda en bitácora
  • Creación del primer trigger sobre la tabla propiedad
  • Creación de cadenas en formato Json
Para este trabajo, primero busqué información sobre la creación de triggers y me di cuenta que existían dos tipos. Los DML que son para manipulación de datos (los que ocupaba) y los DDL que son para movimientos de bases de datos como tal. La sintaxis no fue muy complicada, pero la primera vez que los implementé no incluí los archivos json en la parte de antes y la del despues.
Primero intenté capturar la dirección ip en la base de datos pero eso no funcionó, pues solo me tiraba local machine como valor, y me topé con un problema, pues no tenía idea como enviar la información del nombre de usuario y mandarla al servidor, pues entre los administradores y las propiedades no existía una conexión como tal de la cual me pudiera aprovechar. Entonces encontré una cualidad del SQL: El usercontext, que básicamente funcionaba como un storage pequeñito de información, y que duraba mientras la conexión existía




Entonces, como vemos ahí arriba, era necesario hacerle un set y luego un get para acceder a él, sin embargo, todo mi esfuerzo fue en vano pues nunca se mandó ningún dato. Al final la solución más práctica fue crear una tabla para guardar datos y borrarlos cada vez que un usuario iniciaba sesión:



Ya con esto se puede ingresar a la bitácora el usuario y la ip. Despues de eso, busqué como crear strings en formato json, y se hacen de esta manera

Donde la tabla i funciona como los valores insertados en la operacion de insert. Para la operación de búsqueda en fechas bastó con utilizar nada más un between y mandarle las dos fechas y el id del tipo de entidad, que estaba ligado a un dropdown.
Ya con eso, probé que la consulta funcionara y no funcionó, a pesar de usar los textbox de parametro especial para fechas. Con esto me bloquee y decidí no seguir más, pues duré mucho tiempo en ello.

Fuentes:
https://docs.microsoft.com/en-us/sql/relational-databases/triggers/create-dml-triggers?view=sql-server-ver15
Create DML Triggers - SQL Server | Microsoft Docs 
https://blogs.msmvps.com/p3net/2013/09/13/entity-framework-and-user-context/
https://www.w3schools.com/sql/sql_between.asp
Duración:3 horas