[Lazarus-es] M?s dudas

Claudio Romero clauslack en gmail.com
Mie Nov 25 01:04:16 CET 2009


Bueno en Firebird (funciona en Firebird >=2.1) creas la tabla.

CREATE TABLE LOG_INGRESOS_SALIDAS
(
  CODIGO Integer NOT NULL,
  USUARIO Varchar(31),
  ROL Varchar(31),
  FECHA Date,
  HORA Time,
  ACCION Char(1),
  CONECCION Integer,
  IP_REMOTO Varchar(253),
  PROCESO_REMOTO Varchar(253),
  PRIMARY KEY (CODIGO)
);

El generador donde almacena el valor del campo clave  (lo hace
flamerobin) si quieres campo clave.
CREATE GENERATOR GEN_LOG_INGRESOS_SALIDAS_ID;

El trigger para el campo clave.(lo hace flamerobin automaticamente) si
quieres campo clave.
SET TERM ^ ;
CREATE TRIGGER LOG_INGRESOS_SALIDAS_BI FOR LOG_INGRESOS_SALIDAS ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.CODIGO IS NULL) THEN
    NEW.CODIGO = GEN_ID(GEN_LOG_INGRESOS_SALIDAS_ID, 1);
END^
SET TERM ; ^


El trigger cuando se conecta algun usuario.
SET TERM ^ ;
CREATE TRIGGER AL_CONECTAR ACTIVE
ON CONNECT POSITION 0
AS
declare variable IP_remoto varchar(253);
declare variable proceso_remoto varchar(253);
BEGIN
    for select m.MON$REMOTE_ADDRESS,m.MON$REMOTE_PROCESS
    from MON$ATTACHMENTS m where m.MON$ATTACHMENT_ID = CURRENT_CONNECTION
    into :IP_remotO,:proceso_remoto
    do
    insert into LOG_INGRESOS_SALIDAS(usuario, fecha, hora,
accion,coneccion,rol,IP_remoto,proceso_remoto)
    values(current_user, current_date, current_time,
'I',current_connection,current_role,:IP_remotO,:proceso_remoto);
END^
SET TERM ; ^

El trigger cuando se desconecta
SET TERM ^ ;
CREATE TRIGGER AL_DESCONECTAR ACTIVE
ON DISCONNECT POSITION 0
AS

begin
      insert into LOG_INGRESOS_SALIDAS(usuario, fecha, hora,
accion,rol,coneccion)
      values(current_user, current_date, current_time,
'S',current_role,current_connection);
END^
SET TERM ; ^


El ip es del paquete que se conecta al servidor de SQL, si tienes un
router en el medio, vas a obtener el ip del router.

Saludos.




More information about the Lazarus-es mailing list