Fórum Insert/Delete em uma tabela e Insert/Delete em outra tabela detalhe #428225
07/11/2012
0
Tenho as seguintes tabelas:
Modulos
-------
CODMODULO
MODULO
DESCRICAO
USUARIOS
--------
CODUSUARIO
USUARIO
SENHA
UPERMISSAO
----------
CODUSUARIO
CODMODULO
PERMISSAO
Quando eu cadastro novo usuário, eu insiro uma lista de módulos a partir da tabela módulo que ele tem acesso usando um ClientDataSetField.
Pelo Delphi eu posso fazer as alterações para que quando um módulo for cadastrado/deletado, cada usuario tenha aquela permissão criada/deletada do seu registro detalhe da tabela UPERMISSAO
NOVO MODULO ->
PARA CADA USUARIO
-> NOVO REGISTRO UPERMISSAO CONTENDO NOVO MODULO
Gostaria de saber como proceder para permitir que essas alterações sejam executadas pelo Firebird, em vez do delphi.
Desde já
Obrigado pela atenção =)
Walter Desidera
Curtir tópico
+ 0Posts
07/11/2012
Deivison Melo
Vc deseja automatizar as rotinas e deixar por conta do banco, é isso?
Se for isso, o ideal seria trabalhar com a utilização de triggers (gatilhos)
Gostei + 0
07/11/2012
Walter Desidera
Gostei + 0
09/11/2012
Luiz Menin
Quando for feita alguma alteração na tabela, a trigger vai ser chamada.
Pesquise sobre como proceder.
Achei esse link, da para ter uma ideia do caminho a ser tomado: http://www.destructor.de/firebird/trigger.htm
Gostei + 0
18/11/2012
Walter Desidera
After Insert na tabela MODULOS
------------------------------
AS
declare variable codusr integer;
declare variable codper integer;
begin
for SELECT codusuario from usuario into codusr do
insert into upermissao values (:codusr,new.codmodulo,'S');
for SELECT codperfil from perfil into codper do
insert into iperfil values (:codper,new.codmodulo,'S');
end
Uso um for, inserindo uma nova permissão para cada usuário automáticamente com uma trigger.
Obrigado pelas respostas pessoal \o/
Gostei + 0
18/11/2012
Alisson Santos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)