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

No comments:

Post a Comment