SysLogs

Controle de Ações Executadas pelos Usuários

O programa tem o objetivo de gerar um controle de logs de acesso e ações executadas pelos usuários no sistema.

SysLogs.gif

 

Para este exemplo apliquei uma regra simples para gerar os históricos de ações, mas servirá para os amigos terem uma noção e implementarem da forma que desejar pois este é o meu primeiro Uploader no ClubeDelphi e espero que os colegas apreciem.

Este projeto foi desenvolvido em Delphi 7 + IBX + FB 1.5.

BANCO DE DADOS:

CREATE TABLE SYS_LOGS  

( 

    CD_SYSLOG  CODIGO NOT NULL /* CODIGO = INTEGER NOT NULL */, 

    DT_LOG     DATA /* DATA = TIMESTAMP */, 

    CD_USU     CODIGO1 /* CODIGO1 = INTEGER */,

    HISTORICO  STRING100 /* STRING100 = VARCHAR(100) */  

);

ALTER TABLE SYS_LOGS ADD CONSTRAINT PK_SYS_LOGS PRIMARY KEY (CD_SYSLOG);

ALTER TABLE SYS_LOGS ADD CONSTRAINT FK_SYS_LOGS_USR FOREIGN KEY (CD_USU) REFERENCES USUARIOS (CD_USU);

 

CREATE PROCEDURE SP_SYSLOGIN  

(

  CD_USUARIO INTEGER,  

  HISTORICO VARCHAR(100)  

) 

AS

BEGIN

  INSERT INTO SYS_LOGS 

         (

           CD_SYSLOG,          

           DT_LOG,

           CD_USU,

           HISTORICO

          )

    VALUES

         (

          GEN_ID(GEN_CD_SYSLOG, 1),  

          CURRENT_TIMESTAMP,

          :CD_USUARIO,

          :HISTORICO

         );

  SUSPEND;

END

DELPHI

// CONTROLE DE LOGS DE USUARIOS  

procedure TDM.SysLogin(Conexao : TIBDatabase; CD_Usuario: Integer; Historico: string);

var

  SProcedure : TIBStoredProc; 

begin

  SProcedure := TIBStoredProc.Create(Nil);  

    with SProcedure do 

    begin

      Database := Conexao;

      StoredProcName := 'SP_SYSLOGIN';  

      ParamByName('CD_USUARIO').Value  := CD_Usuario;

      ParamByName('HISTORICO').Value   := Historico;         

      ExecProc;       

      Destroy;         

    end;

end;

 

A Rotina abaixo deve ser adaptada da forma que deseja para formação do Histórico.

 

DM.SysLogin(DM.DBLogs, DM.CD_Usuario_Mem, 'GRAVOU DADOS EM: Cad. de Pessoas - Cód: [ ' + IntToStr(DM.qPessoasCD_PES.Value) + ' ] Nome: ' + DM.qPessoasNM_PES.Value);

 

Até a próxima amigos e que Deus abençoe a todos...    

 

Everson Clei da Silva (viasolucoes@hotmail.com.br)- Analista/Programador da Empresa Via Soluções, em Umuarama–PR. Trabalho com informática desde 1997, Possuo conhecimento avançado em Delphi, InterBase & Firebird, Clipper, MS SQL Server, Oracle, MySQL, ASP.