[Lazarus-es] M?s dudas

Ismael L. Donis Garc?a ismael en citricos.co.cu
Mie Nov 25 15:36:33 CET 2009


Claudio ha sido de gran ayuda esto, pero como dices tiene un gran problema, 
y es que siempre entonces tendría el IP del router y no el de la PC cliente.

De todos modos me es explicado una cosa para mi muy importante. Solo 
faltaría ver si era posible obtener el IP de la PC y no el del router.

Saludos Cordiales
=========
¦¦ ISMAEL ¦¦
=========
----- Mensaje original ----- 
De: "Claudio Romero" <clauslack en gmail.com>
Para: "Spanish version of Lazarus List" 
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: martes, 24 de noviembre de 2009 06:04
Asunto: Re: [Lazarus-es] M?s dudas


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.

_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es






More information about the Lazarus-es mailing list