• Martes 19 de Noviembre de 2024, 18:22

Autor Tema:  Modificacion De Tablas  (Leído 2911 veces)

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Modificacion De Tablas
« en: Domingo 13 de Mayo de 2007, 18:11 »
0
hola amigos, tengo una duda, una vez< escuche a un docente comentar que la empresa SAP tenia un metodo para darse cuenta si una tabla habia sido modificada desde el mismo administrador de bases de datos o habia sido modificada a traves de las APIs que la empresa les proporcionaba, en el primer caso, si sucedia esto, el cliente perdia la garantia de su sistema, pero en el segundo caso, no habia problema, este mismo sistema quiero implementarlo con mis programas pero no se como hacerlo, halguien save como darse cuenta de esto?

gracias de antemano por su ayuda
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Modificacion De Tablas
« Respuesta #1 en: Domingo 13 de Mayo de 2007, 20:23 »
0
Me parece que en este caso, podrías crear una tabla de auditoría y actualizarla mediante triggers. Voy a investigar un poco y vuelvo :D
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Modificacion De Tablas
« Respuesta #2 en: Lunes 14 de Mayo de 2007, 19:34 »
0
Pues tendrias que auditar tooooooooooooodos los insert,delete,update que se les haga a ciertas tablas de tu bd... a menudo a este proceso se le le llama BITACORA .. y para ver todo lo sucedido lo podras ver... y como dice Angel_k_ido lo puedes hacer desde un Trigger que se dispare y que guarde la informacion en la tabla de la bitacora..

 ;)
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Modificacion De Tablas
« Respuesta #3 en: Lunes 21 de Mayo de 2007, 01:52 »
0
pues mis amigos, esa soluciones solo darian resultado para saber si se ah modificado la tabla, pero no se sabria si fue directamente desde la base de datos o si fue desde el sistema implementado, eso es justamente lo que me interesa
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Modificacion De Tablas
« Respuesta #4 en: Lunes 21 de Mayo de 2007, 07:08 »
0
Yo estoy usando algo parecido a esto (Es en MySQL):
Código: Text
  1. DELIMITER &#036;&#036;;
  2.  
  3. DROP TRIGGER &#96;remiseria&#96;.&#96;trigger_audit_choferes&#96;&#036;&#036;
  4.  
  5. create trigger trigger_audit_choferes AFTER UPDATE on chofer
  6. for each row BEGIN
  7. INSERT INTO audit_choferes(fecha,usuario,accion) VALUES (NOW(), SYSTEM_USER(), &#34;UPDATE&#34;);
  8. END;
  9. &#036;&#036;
  10.  
  11. DELIMITER&#59;&#036;&#036;
  12.  
con lo que obtengo algo como esto:


De acuerdo a como se haya conectado el usuario a la DB.

También podría guardar el número de IP.

PD: No estoy muy seguro pero me parece que en SQL Server existía una función que retornaba el nombre de la aplicación (APP_NAME) desde la que se ejecutaba la consulta pero no he encontrado nada parecido en MySQL para poder probarlo ya que es el único motor que tengo en mi máquina.-

Un saludo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Modificacion De Tablas
« Respuesta #5 en: Martes 22 de Mayo de 2007, 15:36 »
0
gracias copachay, con tu ayuda pude hacerlo, aunque no con mySQL sino con SQLserver, con esa idea que me diste sobre app_name ya lo resolvi. :comp:
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Modificacion De Tablas
« Respuesta #6 en: Martes 22 de Mayo de 2007, 17:52 »
0
Cita de: "jodijo5"
gracias copachay, con tu ayuda pude hacerlo, aunque no con mySQL sino con SQLserver, con esa idea que me diste sobre app_name ya lo resolvi. :comp:
Por nada :beer:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Modificacion De Tablas
« Respuesta #7 en: Miércoles 30 de Mayo de 2007, 01:44 »
0
en el trigger que coloco angel, hay un AFTER UPDATE,  que supongo que significa que el trigger se ejecutara despues de realizar un update en la tabla mencionada.

eso es en MySQL, y lo equivalente en SQL Server ???

no saben si existiese tambien un BEFORE ??, para que se ejecute antes de realizar la operacion sobre la tabla.
He visto que esto hay en Oracle, pero no lo encuentro para sql Server.

utilizo sql 2000

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Modificacion De Tablas
« Respuesta #8 en: Miércoles 30 de Mayo de 2007, 03:54 »
0
para que el trigger se ejecute despues de actualizar se pone "after update", para que se ejecute antes se pone "for update"

Create Trigger for Update
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com