Ir para conteúdo
  • Cadastre-se

dev botao

Trigger Exclusão Registros Firebird


Ver Solução Respondido por Cleber Ferreira,
  • Este tópico foi criado há 3663 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores

Boa tarde a todos!

 

Alguém sabe onde encontro uma trigger que grave um log numa tabela quando algum registro de determinada tabela for excluído? É para Firebird. Estou tratando a exclusão de registros direto no banco de dados do PAF-ECF. Acho que tem que tratar inclusão dentro do banco tbm neh?

 

Obrigado desde já!

Editado por Cleber

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

Vi algo sobre isso no IBExpert verão full, parece que ele criar as rotinas de log automaticamente e cria as tabelas de sistema para guardar, de uma olhada.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia Isaque! 

 

Obrigado pela dica. Eu vi sim que tem essa função no IBExpert. Mas acabei criando uma trigger mesmo. Agora quando excluo algum registro da tabela é gravado um log em outra tabela com alguns dados que preciso para informar se houve exclusão de registros nos arquivos eletronicos do PAF-ECF.

 

Abraço e mais uma vez obrigado!

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Depende de como você implementou as triggers, se elas estiverem abertas a alteração, realmente alguns poucos não aceitam e eu concordo com isso para ser sincero.

Agora se as trigger estiverem implementadas de forma que não possam ser alteradas (sistema) ou possuam algo que não as deixe ser alteradas passa em todos.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Precisa torná-las de sistema também evitando que elas possam ser alteradas/excluidas,

 

Regys, você diz implanta-las dentro do sistema. Nesse caso eu teria que verificar a existência delas dando um CREATE ou ALTER na trigger. Isso sempre que o programa iniciar? ou em qual momento? Pois com o programa fechado, não tem como recria-la. Aí alguem pode ir la a qualquer momento e apaga-la.

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Para que utiliza FB senão me engano é só limpar para não mostrar o source e ser recompilado

 

Juliomar, não entendo muito de FB ainda. Estou aprendendo aos poucos. Como é tal procedimento? Se vc puder me orientar, claro. Ou algum lugar onde ensina isso

Editado por Cleber

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Quando digo torná-las de sistema e fazê-las ser triggers de sistema no firebird, geralmente elas inicialm em "RD$" e estão ocultas, também não podem ser alteradas.

 

- Basta somente colocar o prefixo quando cria-la?

- E depois, eu tenho algum tipo de acesso a ela para alterar?

- Funciona também para tabelas?

 

PS: é "RDB$"?

Editado por Cleber

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution

Galera, para quem precisar de tal procedimento. Achei através de algumas pesquisas pelo google. Aqui vai a codificação:

 

 

Para ocultar a Trigger:
UPDATE RDB$TRIGGERS
SET RDB$SYSTEM_FLAG = 1
WHERE RDB$TRIGGER_NAME = 'Nome da Trigger';
 

Para ocultar o Generator:

UPDATE RDB$GENERATORS
SET RDB$SYSTEM_FLAG = 1
WHERE RDB$GENERATOR_NAME = 'Nome do Generator';
 

 

Para ocultar a tabela:
UPDATE RDB$RELATIONS
SET RDB$SYSTEM_FLAG = 1
WHERE RDB$RELATION_NAME = 'Nome da Tabela';
 

 

Pode montar e depois ocultar. Essa foi minha solução para gravar o log de exclusão indevida de registros, me facilitando na hora de indicar nos arquivos eletronicos.

 

Obrigado a todos!

Editado por Cleber
  • Curtir 3

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • Este tópico foi criado há 3663 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.