Erro ao alterar o banco de dados

6 respostas
Donizeti
Galera tenho o seguinte código:
try{
        //comando sql responsável pela alteração dos dados 
       String sql="update cidades set cidade ='"+jText_cid.getText()+"', estado = '"+
       jComb_est.getSelectedItem()+"',cep = '"+jText_cep+ "' Where id = "+jText_cod.getText();        
       //executa o comando Sql
       con_cidade.statement.executeUpdate(sql);
       JOptionPane.showMessageDialog(null,"Alteração ralizada com sucesso!");
      //atualiza o banco de dados
       con_cidade.executaSQL("Select * from cidades");
       //posiciona no primeiro registro
       con_cidade.resultSet.next();
       mostar_dados();//mostra os dados
        
    }catch(SQLException erro){
        
        JOptionPane.showMessageDialog(null,"Erro ao tentar alterar registro!"+erro);
        erro.printStackTrace();
    }

ele faz um UPDATE no banco de dados , mas quando eu vo fazer essa alteração ele gera o seguinte erro:

Data truncation: Data too long for column 'cep' at row 1
não to conseguindo achar o erro do campo cep que ele se refere , me ajudem por favor!

Agradeço desde já.........

6 Respostas

F

Data too long for column ‘cep’ at row 1

Ou seja, provavelmente vc está tentando colocar São Paulo dentro do Rio de Janeiro e não vai dar… rsrsrss
Veja o tamanho do campo CEP em seu banco e a quantidade de caracteres que está enviando para ele!

Abraço e feliz 2009!

Marco Aurélio

Donizeti

Então acho que não seria esse problema pois no campo cep no meu banco está assim:
cep varchar(11) e não cadastrei nenhum registro com mais que 11 caracteres;

O

Bom essa mensagem significa exatamente o que nosso amigo disse, colocar Sp dentro de Rj.

faz o seguinte coloca assim:

System.out.print(sql);

verifique o que você esta como esta seu comando, sabendo que o campo cep não pode conter mais que 11
caracteres

Donizeti

Então Oliveira.caio minha tabela tem quatro campos
id , cidade , estado , cep
fiz o System.out.print(sql);
ele imprimiu o seguinte:

update cidades set cidade =’ Monte Sião ', estado = ‘MG’, cep = ‘javax.swing.JTextField[,186,230,123x20,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@1386000,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],columns=0,columnWidth=0,command=,horizontalAlignment=LEADING]’ Where id = 17

ou seja ele imprime corretamente os campos id , cidade , estado mais o cep ele gera esse monte de código…
no meu cadastro está o seguinte:

id = 17
cidade = monte sião
estado = mg
cep = 3

no meu campo cep não tem mais que 11 caracteres, não sei o que acontece.
agradeço a ajuda

M

Acontece que seu CEP está em um JTextField e você está passando esse objeto como referência… tente passar assim:

nomeDoJTextField.getText(); // isso corresponde corretamente ao cep
Donizeti

obrigado marcobiscaro2112 era isso mesmo eu esqueci do método getTex();
distração minha , sou iniciante ainda em programação …mas agradeço muito pela ajuda…
abraço

FELIZ 2009 a todos…

Criado 31 de dezembro de 2008
Ultima resposta 31 de dez. de 2008
Respostas 6
Participantes 4