 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qua Ago 01, 2012 10:31 pm Assunto: [Resolvido] Trigger + Procedure Executável. |
|
|
Esta correto se eu fizer uma trigger seguindo o exemplo abaixo?
Código: | set term ^ ;
create trigger nomeTrigger for nomeTabela
active after update position 0
as
declare variable vCampo1 nomeTipo;
declare variable vCampo2 nomeTipo;
declare variable vCampo3 nomeTipo;
declare variable vCampo4 nomeTipo;
begin // retorna multiplas linhas.
for select campo1, campo2, campo3, campo4
from tabela
into :vCampo1, :vCampo2, :vCampo3, :vCampo4
do
begin // procedimento armazenado "executável".
execute procedure nomeProcExec(:vCampo1,:vCampo2,:vCampo3,:vCampo4);
end
end ^
set term ; ^
"O procedimento armazenado nomeProcExec executa instruções DML, mais expecificamente a cláusula Insert."
|
Banco de dados Firebird.
Obrigado! _________________ Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso.
Editado pela última vez por pestana em Qui Ago 02, 2012 1:54 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qui Ago 02, 2012 10:51 am Assunto: |
|
|
Porque será que está duplicando registro ao incluir na tabela?
p.ex: o select retornou os valores para as variaveis vCampo1, vCampo2, vCampo3, vCampo4 {
1,2,3,4
5,6,7,8}
mas quando eu vou consultar o banco esta assim:
1) 1,2,3,4
2) 5,6,7,8
3) 1,2,3,4
4) 5,6,7,8
ou seja, incluiu 4 registros mas repetidos, quando na verdade deveria ter 2 registros:
1) 1,2,3,4
2) 5,6,7,8
Obrigado! _________________ Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso. |
|
Voltar ao Topo |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qui Ago 02, 2012 12:15 pm Assunto: |
|
|
Gente me veio a cabeça que em um outro lugar do código eu estou atualizando um campo qualquer desta mesma a tabela, como eu estou utilizando o "update" certamente está disparando este evento "after update", fazendo com que a tabela possui registros duplicados.
Eu descomfio que o problema seja isso. Eu vou fazer os testes e logo depois eu volto a postar a solução.
Qualquer ajuda é sempre bem-vinda!
Obrigado! _________________ Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso. |
|
Voltar ao Topo |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qui Ago 02, 2012 1:53 pm Assunto: |
|
|
Como eu já havia desconfiado o problema era isso mesmo! _________________ Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso. |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|