Duvidas com Update

5 respostas
wamarra

Boa noite pessoal,

Estou tentando realizar um UPDATE em meu bando de dados.
Porém estou manipulando textos e não números.
Quando altero números ele funciona perfeitamente, mas com texto dá um erro chamado de Data truncation
Ou seja, não posso usar o executeUpdate(); pois ele é para manipular um objeto do tipo int, ou estou enganado?
Tentei usar o executeQuery(); Mas deu erro, o compilador não manipula dados com executeQuery();

Dúvida:

O que devo usar para manipular os dados?

Valeu a força galera.

5 Respostas

_Renatu

procure pesquisar sobre PreparedStatement…

com ele voce consegue trabalhar com diversos tipos de dados, nao só numeros…

poste seu codigo, pode ajudar a gente a te mostrar como funciona

wamarra

Olá Renatu,

Eu já postei o codigo ao qual tá dando o seguinte erro:
[color=red]com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'Ajuizar Condômino'[/color]

Eh que tô apanhando e muito nessa parte do código.
tentei fazer o que me falou no outro post, mas a questão é que estou manipulando texto e não número.
O meu banco tá modelado com o tipo VARCHAR
Ele dá esse erro porque espera um dado do tipo DOUBLE e não String

Inclusive irei praticar as dicas que me falou com relação ao connection fora do try e o seu fechamento no Finally no caso de cair no catch.

O código é o seguinte:
try {   
                Class.forName("com.mysql.jdbc.Driver");   
                String url = "jdbc:mysql://localhost:3306/gerpro";   
                String usuario = "root";   
                String senha = "admin";   
                Connection con;   
                con = DriverManager.getConnection(url, usuario, senha);   
                PreparedStatement ps = con.prepareStatement("UPDATE servicosjuridico SET servico = ? AND descricaoDoServico = ? " +
                        "WHERE idSJ = ? ");   
                ps.setString(1, cxTxtAlterarServicoJuridico.getText());   
                ps.setString(2, cxTxtAlterarDesServicoJuridico.getText());
                ps.setString(3, cxTxtEdiJurSerCodigo.getText());
                   
                ps.executeUpdate();   
                   
                con.close();   
        }catch (ClassNotFoundException e){   
                JOptionPane.showMessageDialog(null, "Falha na conexão com o banco de dados.\n" + e.getMessage());   
                        e.printStackTrace();   
        }catch (SQLException e){   
                JOptionPane.showMessageDialog(null, "Erro ao tentar alterar o serviço.\n"+ e.getMessage(),"Mensagem do Programa",   
                        JOptionPane.ERROR_MESSAGE);   
                    e.printStackTrace();   
        }

Desde já agradeço a força.

Abraço

_Renatu

Ola Wesley,

Desculpe por ter insistido. Nao percebi que era a mesma duvida.

Olha, consultei a sintaxe de SQL do manual do MySQL e percebi um provavel erro no seu codigo. As colunas a serem alteradas no comando UPDATE sao separadas por virvulas e nao por AND.

http://dev.mysql.com/doc/refman/4.1/pt/update.html

dá uma olhadinha nesse link, ve se resolve seu problema.

_Renatu

*virvulas = virgulas

wamarra

Cara não acredito que era só essa virgula que tava tirando meu juizo.

Funcionou!!

Valeu mesmo Renatu,

Te devo essa.

Abraços

Criado 15 de novembro de 2007
Ultima resposta 15 de nov. de 2007
Respostas 5
Participantes 2