Bom dia galera do GUJ, estou precisando de uma força de vcs preciso tratar o seguinte erro violation of roreigin key constraint ao tenta excluir um registro q tem vinculo com a chave primaria de outra tabela aparece a seguinte mensagem:
violation of FOREIGN KEY constraint “FK_C_APGAR_X_FORNECEDOR” on table “C_APAGAR”
quero facilita essa leitura de erro para o usuário o q eu devo fazer ?
Um abraço a todos
Basta colocar um catch pra exception. Acho que é ConstraintViolationException que ele lança.
Boa tarde ErickRaR, muito obrigado por sua colaboração foi muito útil achei algo aqui nessa pagina q vai me ajuda a personaliza mais esses erros. Um forte abraço
http://www.devmedia.com.br/forum/personalizar-mensagem-de-erro/404185
é amigo ta quase lá rsrsr, ainda não consegui o esperado. Pensei q o erro enviando do banco caísse em FBSQLException e erro de sql em SQLException mas não esta sendo assim só esta caindo em FBSQLException
} catch (FBSQLException fb) {
JOptionPane.showMessageDialog(this, "Exclusão não permitida existi lançamentos para esse cleinte em: ");
} catch (SQLException sq) {
JOptionPane.showMessageDialog(this, "Error de SQL \n"+sq,"Error", JOptionPane.ERROR_MESSAGE);
}
amigo consegui solucionar esse problema assim
} catch (SQLException sq) {
if (sq.getErrorCode() == 335544466) {
Msg.mensagemAvisa(this, "Não é possível excluir este registro, pois existem outras "
+ "\n informações no sistema que dependem do mesmo.");
} else {
Msg.mensagemErroSQLException(this, "ao excluir registro", sq);
}
}
Mas queria deixar a msn da seguinte forma "Não é possível excluir este registro, pois existem lançamento na tabela (nome) "
Nunca usei esse banco, mas acho que o problema é com a api dele.
http://www.firebirdsql.org/file/documentation/drivers_documentation/java/2.2.2/docs/org/firebirdsql/jdbc/FBSQLException.html
Pelo que tem na documentação, ele não tem execeptions mais detalhadas, como de constraintviolation. Em outros bancos você poderia fazer um catch mais específico.
PS: Os cathcs seguem uma hierarquia. Ele só irá parar no SQLException caso a exceção lançada não seja FBSQLException.
entendi, tbm não sou fã desse banco não pretendo depois migra pra postgres ou mysql infelizmente o meu parceiro esta utilizando esse banco, mas ate o momento deu para dar uma desfasada rsrsr. Mas muito obrigado pela força viu há deixo o meu Skype adilson.paraguai aqui caso queira me add para agente troca uma ideia.
Um forte abraço e fique com DEUS.