Problema Esquisito (e muito)

7 respostas
M

pessoal,

eu estava tranquilamente programando, qdo aconteceu isso:

o meu método Inserir retorna um inteiro. Bom, acontece q qdo eu executo ele, ele me retorna um numero maior q 0, porem, o Dado não é cadastrado no BD. entedenderam? o executeUpdate() retorna > 0, porem, ele num grava os dados.

me ajudem ae, pelo amor dos meus Filhinhos !!

vlw!

7 Respostas

M

…tu tens esse problema nos dois métodos? o inserir() e o executeUpdate()? não ta lançando nenhuma exceção não? :roll: , verifique se aquilo q tu ta tentando inserir não é null, ou de valor “” tb…

M

Matheus,
num dá nenhuma exceção e os valores passados estão corretos. o meu Inserir é assim:

public int Inserir(Alunos aluno, float Media, float NotaPosExame) { try { String iSQL = "INSERT INTO tblAprov (CodAluno, Media, MediaPosExame) Values (" + aluno.getCodAluno() + ", " + Media + ", " + NotaPosExame + ")"; Statement cmd = Conexao.createStatement(); return cmd.executeUpdate(iSQL); } catch (SQLException ex) { System.out.println("Erro ao Inserir Dados"); System.out.println(ex.toString()); return 0; } }
e eu to usando ele assim:

public boolean AdicionaAprovado(Alunos aluno, float Media, float MediaPosExame) { AprovadosDAO A_DAO = RNegocio.getAprovadosDAO(Conn); if (A_DAO.Inserir(aluno, Media, MediaPosExame) > 0) { System.out.println(aluno.getCodAluno()); System.out.println(MediaAluno); return true; } else { return false; }
intaum, uma coisa mais estranha ainda: o metodo AdicionaAprovado, está sendo usado num loop while, e os Alunos aprovados na minha tabela são 3, porem, só o último ele num adiciona. E eu tbm já vi q o problema não é no loop while, pq ele retorna true 3 vezes.

M

seguinte cara, tira o return 0 de dentro do catch, ponha o return como sendo a ultima instrução do método, fora do catch :slight_smile:

M

Matheus

sinto dizer que, ficou a msm coisa :cry: . Continua não dando exception, e indicando q o registro foi incluído.
tem outra sugestão, o BD é Access.

M

bah cara, então eu não sei… ja tentou com outro banco? não faço nem idéia, nunca mexi em Access… :roll:

M

bom, o Rafael Santos do meu MSN e rafaelsantos aqui do PJ, disse q o BD poderia estar Preso. Bom, ele deu a seguinte sugestão: dentro do loop while, a cada registro inserido, fechar e reabria a conexao com o BD. eu fiz assim e funcionou. Porem, se a tabela tiver mtos registros fica inviável.

Bom se alguem tem alguma solução/sugestão, obrigado, e se num tiverem, obrigado msm assim hehehe

vlw

M

Bom, pessoal,

acho que o problema era de BarrigaVaziaException huaheauheu.
Depois de jantar hehehe, eu tive essa ideia :idea: , e funcionou:

eu setei o AutoCommit pra falso, e a cada vez q insere um dado eu dou um commit(), ai funcionou.

de qualquer forma, Obrigado :!: :!:

Criado 15 de agosto de 2004
Ultima resposta 15 de ago. de 2004
Respostas 7
Participantes 2