ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Aprendendo a usar Trigger!
Ir à página Anterior  1, 2
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
thomazs
Moderador
Moderador


Registrado: Segunda-Feira, 1 de Março de 2004
Mensagens: 2835

MensagemEnviada: Qui Jan 11, 2007 7:22 pm    Assunto: Responder com Citação

pode criar sim, mas não precisa, pois quando se cria a foreign key com cascade, o banco faz isso automaticamente.
_________________
Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jan 11, 2007 7:45 pm    Assunto: Responder com Citação

Bom Thomasz, verificando aki, me pareçe que alen de nao poder existir essa trigger
Código:
/* Trigger: TR_RETR_DEBITO */
CREATE TRIGGER TR_RETR_DEBITO FOR DEBITO
ACTIVE AFTER DELETE POSITION 0
AS
begin
  /* Trigger text retroceder debito*/
  UPDATE debito SET SEQUENCIA = SEQUENCIA - 1
  WHERE SEQUENCIA > OLD.SEQUENCIA;
end


Essa tambem nao pode ter
Código:
/* Trigger: RETRCONTA */
CREATE TRIGGER RETRCONTA FOR TBCONTA
ACTIVE AFTER DELETE POSITION 0
AS
begin
 UPDATE tbconta SET SEQUENCIA = SEQUENCIA - 1
 WHERE SEQUENCIA > OLD.SEQUENCIA;
end
^


Pois no caso ai se eu deletar uma sequencia do meio por exemplo na tabela mestre a tabela detalhe deleta todos que vem depois da sequencia deletada, exemplo

se eu tiver no banco assim (meste e detalhe tambem)
sequencia-------------valor
1-----------------------500,00
2-----------------------200,00
3-----------------------100,00

e se eu quiser deletar a sequencia 2 na tabmestre fica certo, mais na detalhe fica assim
1-----------------------500,00
ou seja ela deleta tambem a sequencia 3
-------------------------------
mais se eu nao usar essa trigger ai quando deleto fica assim
1-----------------------500,00
3-----------------------100,00
--------------------------------
se nao tiver alguma maneira de deixa-la assim como estava antes
1-----------------------500,00
2-----------------------100,00
nao tem problema, mais se tiver alguma maneira das duas tabelas ficarem com a sequencia organizada seira melhor. Mais isto eh se nao bagunçar com as tabelas.
------------------------------------

No mais muito obrigado pela ajuda amigo.

Pelo menos desta forma sem essas duas trigger esta funcionando.

Mais uma vez Muito Obrigado

Ha ia me esquecendo tambem de dizer, se na trigger autoincremento posso deixar desta forma que eu criei ou eh melhor usa-=la com generators.

Mais uma pergunta Ja que estou deletando em cascata e tambem configurei para fazer update em cascata. Nao eh necessario fazer um SPorc com o update tambem basta eu fazer do mesmo modo que faço na query que fiz o delete apenas mudando o codigo para update eh claro... Very Happy

No caso se puder alterar em cascata assim tambem, pq serah que nao fizeram para incluir em cascata tambem para evitar de criar uma Sprocedure como foi feito. Question
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Ir à página Anterior  1, 2
Página 2 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB