Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2022
Dean87 Dean87 is offline
Registrado
 
Registrado: jul 2022
Posts: 3
Poder: 0
Dean87 Va por buen camino
Question Trazas

Saludos, estoy intentando generar las trazas de acceso a una BD desde un sistema de gestión y no se me ocurre cómo. Usando FireDac en los eventos afterpost no encuentro forma de obtener el fdquery que generó el evento y así poder crear un único manejador del evento que me guarde la tabla en la que se escribió o actualizó. Solo necesito saber cómo guardar que tabla se editó o modificó ...
Responder Con Cita
  #2  
Antiguo 12-07-2022
chenech chenech is offline
Miembro
 
Registrado: dic 2013
Posts: 72
Poder: 11
chenech Va por buen camino
Usar trigger

Hola, que base de datos usas? si tienes trigger podrias usar estos y es transparente a la aplicación.
Un saludo.
Responder Con Cita
  #3  
Antiguo 12-07-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Dean87 Ver Mensaje
Saludos
Saludos y bienvenido a clubdelphi
Te aconsejo que leas nuestra guía de estilo, gracias. Son una corta lista de consejos para que podamos ayudarnos mejor entre todos.
Por ejemplo, poner títulos descriptivos a tus dudas, ya que "Trazas" no dice nada.
Dar información amplia y detallada, ni siquiera has dicho qué base de datos estás usando.
Y también puedes hacer uso del buscador, ese tema se ha tratado muchas veces aquí, por lo que seguro que podrás encontrar información al respecto.
Y si tienes cualquier duda, sigue preguntando por aquí.
Saludos
Responder Con Cita
  #4  
Antiguo 12-07-2022
Dean87 Dean87 is offline
Registrado
 
Registrado: jul 2022
Posts: 3
Poder: 0
Dean87 Va por buen camino
Unhappy Trazas FDquery

Cita:
Empezado por chenech Ver Mensaje
Hola, que base de datos usas? si tienes trigger podrias usar estos y es transparente a la aplicación.
Un saludo.

Saludos, uso SQL Server 2008 R2, pero preferiría un método alternativo a los triggers. Por ejemplo sería bueno poder capturar en el evento afterpost que FDquery generó el mismo, pero no parece posible.


Casimiro, leeré la guía de estilos. He utilizado el buscador y no aparece nada parecido a lo que busco ni con el buscador interno, ni con Google.
Responder Con Cita
  #5  
Antiguo 13-07-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Dean87 Ver Mensaje
... acceso a una BD ....
¿Sólamente quieres saber quién accede?
Responder Con Cita
  #6  
Antiguo 13-07-2022
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola Dean87,

EL afterPost de Firedac es un evento TDatasetNotify en el cual envían el Dataset que dispara el evento.

Si quisieras hacer un solo evento donde manejar las trazas, podrías hacer que reciba como parámetro el Dataset que te envían en el afterpost.

Código Delphi [-]
procedure TForm1.ADQuery1AfterPost(DataSet: TDataSet);
begin
  GuardarTrazas(DataSet);
end;

procedure TForm1.GuardarTrazas(DataSet: TDataSet);
begin
  // Acá puedes manejar el TFdQuery(DataSet) y guardar tus trazas
end;
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #7  
Antiguo 14-07-2022
Dean87 Dean87 is offline
Registrado
 
Registrado: jul 2022
Posts: 3
Poder: 0
Dean87 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Sólamente quieres saber quién accede?
Usuario interno de mi aplicación, acción, tabla y fecha.
Lo que necesito es una sola función que maneje todos los afterpost y after delete, guardando lo solictado arriba en la tabla de trazas.

movorack saludos, tu solución funcionara si el DataSet guardara hacia que tabla se pretende hacer el post.

Conozco que puedo usar el dataset para recuperar los datos que se guardaron lo cual es útil para conocer que registró se modificó.

Al final estoy haciendo algo así en cada FDQuery BeforePost. (Debería guardar en estado en BeforePost y guardar la traza en AfterPost, pero estoy ahorrando tiempo es un trabajo urgente para la universidad)

Código Delphi [-]
if  FD_Nom_Nivel.State = dsInsert  then
Tseguridad.CrearTraza(Encontrar_IDUsuario(form1.IUsuario), 'Insertar', 'Nom_Nivel_Ed')  ;

if  FD_Nom_Nivel.State = dsEdit  then
Tseguridad.CrearTraza(Encontrar_IDUsuario(form1.IUsuario), 'Modificar', 'Nom_Nivel_Ed')  ;

Última edición por Casimiro Notevi fecha: 14-07-2022 a las 10:13:53. Razón: Poner etiquetas delphi al código.
Responder Con Cita
  #8  
Antiguo 14-07-2022
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
:/ Esto es lo que sucede cuando no dan la información completa al crear el post.

Dale una mirada a las funciones de análisis de sentencias en DBCommon.

https://stackoverflow.com/questions/...for-sql-server
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Archivo de trazas(log) gigantescos winzo Varios 13 20-01-2012 10:16:40


La franja horaria es GMT +2. Ahora son las 14:45:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi