Estou Inserindo dados em uma tabela que se relaciona com outras duas, porém quando aciono meu bloco de comandos ele acusa esse erro:
24/06/2012 22:31:43 Visao.TCompras btnEmitirNotaActionPerformed
GRAVE: null
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`dtlink`.`entradaproduto`, CONSTRAINT `entradaproduto_ibfk_2` FOREIGN KEY (`idproduto`) REFERENCES `produtos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
O estranho é que com este mesmo bloco de comandos eu consegui inserir dados na primeira vez, mas quando fui inserir novamente, apresentou este erro e não parou mais.
A mensagem diz que está faltando passar um valor para o campo idproduto que corresponda a um registro que exista na tabela produtos. Examine essa linha:
Já fiz de tudo, mas continua dando este erro.
Eu acredito que o erro está no SQL, mas não sei exatamente o que pode ser.
Se alguém puder dar uma dica, estou procurando na internet o que pode ser, mas não estou achando nada parecido.
O estranho é que a primeira vez que rodei o programa, ele inseriu direitinho.
pmlm e ADEMILTON.
Após vocês dois dizerem a mesma coisa, resolvi deixar de preguiça e debuguei o projeto, também usei alguns observadores para não fazer mais serviço de relaxado.
Então percebi que vocês estavam certos, o problema era naquela linha mesmo, ADEMILTON.
O caso é que esta linha faz o seguinte, pega a String que está no jtable e tira todas as letras, ficando somente os números, porém como tinha números ali que eu não contava que estavam lá acabavam alterando o número do cadastro que estava querendo inserir.
Agora alterei e funcionou direitinho.
Abraços e até mais.