Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Capturar SQL e insertar (https://www.clubdelphi.com/foros/showthread.php?t=74798)

vivamotos 12-07-2011 08:24:27

Capturar SQL e insertar
 
Buenos días,

Me gustaría saber si se puede crear un trigger o algo para ejecutar todas las sentencias insert,update o delete que se ejecutan en la base de datos y que estas sentencias sean insertadas automaticamente a otra tabla para su loggeo.

Grácias.

Casimiro Notevi 12-07-2011 10:03:27

En teoría lo siguiente debería servir, aunque no lo he probado, lo tengo en mi almacén de cosas pendientes de probar.

Código SQL [-]
/*
Sentencias ejecutadas, indicando la IP, el programa, la fechahora y la sentencia ejecutada
*/

select 
 A.MON$ATTACHMENT_ID,
 A.MON$SERVER_PID,
 A.MON$STATE,
 A.MON$ATTACHMENT_NAME AS BD,
 A.MON$USER,
 A.MON$REMOTE_PROTOCOL,
 A.MON$REMOTE_ADDRESS AS IP_REMOTA,
 A.MON$REMOTE_PID,
 A.MON$TIMESTAMP AS FECHA_HORA,
 A.MON$REMOTE_PROCESS AS PROCESO_REMOTO,
 S.MON$TIMESTAMP1 AS FECHA_HORA_REMOTA
 S.MON$SQL_TEXT
 /* 
 A.MON$REMOTE_ADDRESS,
 A.MON$REMOTE_PROCESS,
 S.MON$TIMESTAMP,
 S.MON$SQL_TEXT
 */
from 
 MON$ATTACHMENTS A,
 MON$STATEMENTS S
where
 S.MON$ATTACHMENT_ID = A.MON$ATTACHMENT_ID
 
/*
*/

fjcg02 12-07-2011 10:05:06

Si no estoy equivocado, lo indicado por Casimiro es para versiones de firebird superiores a la 2.1 o 2.5. Las anteriores no permiten esas sentencias.

Saludos

Lepe 12-07-2011 10:29:40

El control IBDatabase tiene una propiedad TraceFlag en la que especificas qué SQL's puedes monitorizar en el evento a tal fin. También existe un componente para el monitoreo.

Saludos


La franja horaria es GMT +2. Ahora son las 16:17:20.

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