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 

Tratamento de Erro ao excluir no mysql

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Benival
Novato
Novato


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 7

MensagemEnviada: Qua Fev 12, 2020 7:17 pm    Assunto: Tratamento de Erro ao excluir no mysql Responder com Citação

Boa noite,
Alguém poderia me ajudar....
estou a dias tentando kk
meu problema e com tratar um erro de exclusão de registro com chave estrangeira em delphi com mysql

ex: cadastro de linhas

lin_id = 1
lin_nome = colmeia

cadastro de rotas

rot_id = 1
rot_nome = Guaraí
id_linhas = 1 (chave estrangeira da linha)

queria que no memento que eu clicar para excluir o registro da linhas
tratasse o erro se no caso existir um registro em outra tabela.

Obrigado!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 8954
Localização: Sinop-MT

MensagemEnviada: Qui Fev 13, 2020 8:46 am    Assunto: Responder com Citação

qual o erro?
pq vc nao usa delecao em cascata?
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Benival
Novato
Novato


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 7

MensagemEnviada: Qui Fev 13, 2020 6:22 pm    Assunto: Responder com Citação

joemil escreveu:
qual o erro?
pq vc nao usa delecao em cascata?


Cannot delete or update a parent row: a foreign key constraint fails (`laticinio`.`carreteiros`, CONSTRAINT
`FK_carreteiros_tanques_tan_id` FOREIGN KEY (`id_tanques`) REFERENCES `tanques` (`tan_id`))[/img]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 8954
Localização: Sinop-MT

MensagemEnviada: Sex Fev 14, 2020 9:09 am    Assunto: Responder com Citação

pode ser algum erro na constraint, q nao ta conseguindo apagar os registros da tabela filha
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 8954
Localização: Sinop-MT

MensagemEnviada: Sex Fev 14, 2020 9:21 am    Assunto: Responder com Citação

tentou apagar o registro pelo cliente do banco de dados?
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Benival
Novato
Novato


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 7

MensagemEnviada: Sáb Fev 15, 2020 8:18 pm    Assunto: Responder com Citação

joemil escreveu:
tentou apagar o registro pelo cliente do banco de dados?
Código:


procedure Tf_tanques.btn_excluirClick(Sender: TObject);
begin
   dm.tb_carreteiros.Open;
   dm.tb_carreteiros.Active := True;

   try
       dm.tb_tanques.Locate('tan_id',dm.sql_tanquestan_id.Value,[]);
       if Application.MessageBox('Tem certeza que deseja excluir o registro selecionado?',
         'Confirmação', MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES then

      begin
          Dm.tb_tanques.Delete;
          MessageBox(Handle, 'Registro Excluido com Sucesso ! ' ,'Folha',MB_ICONINFORMATION+MB_OK);
          dm.tb_tanques.Open;
          dm.sql_tanques.Refresh;
          end;

         if (dm.tb_tanques.RecordCount <> 0) then  //se haver registro na tabela então os botões ficaram assim
            begin
              btn_excluir.Enabled  := True;
              btn_cancelar.Enabled := false;
              btn_editar.Enabled   := True;
              btn_salvar.Enabled   := false;
              btn_novo.Enabled     := True;
              btn_fechar.Enabled   := True;

              txt_consulta.Clear;
              txt_consulta.Enabled := True;
             end;
         if (dm.tb_tanques.RecordCount = 0) then  //se não haver registro na tabela então os botões ficaram assim
            begin
                btn_excluir.Enabled   := False;
                btn_cancelar.Enabled  := False;
                btn_editar.Enabled    := False;
                btn_salvar.Enabled    := False;
                btn_novo.Enabled      := True;
                btn_fechar.Enabled    := True;

                txt_consulta.Clear;
                txt_consulta.Enabled  := False;
              end;
         //verifico se a registro com o mesmo id na tabela carreteiro
          except
             begin
               Application.MessageBox('Você não pode excluir o Registro! Contem dados relacionados a este registro!!!','Erro', MB_ICONERROR + MB_OK );
             end;

           end;



end;


obrigado galera resolvido a questão...
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 -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
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