Comando UPDATE errado pq? [RESOLVIDO]

11 respostas
R

E ao pessoal tudo tranquilo?
Estou aqui de novo com outra duvida, meu comando UPDATE ta dando pau na execução do meu programa.
Eu já procurei pra caramba no google, e unica forma que achei de usar o comando UPDATE é a forma que eu estou usando, mas esta dando erro.
O comando inserir, excluir, avançar, voltar, primeiro e ultimo estão funcionando corretamento, portando o programa não é no banco sim no código.

stm.execute("UPDATE dados set (nome = '" + nome + "',telefone = " + tel + ",msn = '" + msn + "',email = '" + email +"') where (nome = '" + nome + "')"); //telefone é um inteiro e nao string, o resto é tudo string

Obrgado pela ajuda!

11 Respostas

leoramos

Posta esse método, por favor, se puder, e indique que erro está dando.
Mas note isso:
Use Prepared Statements: http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html, assim você evita essa bagunça de ’ e ", vai facilitar tua vida, e creio que o problema esteja aí, não consigo visualizar o problema diretamente.
Se for usar o sql INTEIRO direto (o que já não é nada bonito), opte por montar a string com um StringBuilder.
Abraço!

Jair_Rillo_Junior

Qual erro que está dando (cole a exception para nós).
Outra coisa, eu costumava fazer o update sem usar os parênteses no set… ficando algo assim mais ou menos

stm.execute("UPDATE dados set nome = '" + nome + "',telefone = " + tel + ",msn = '" + msn + "',email = '" + email  +"' where nome = '" + nome);

Outro detalhe, se você já está usando o PreparedStatement, aconselho você usar os parametros dele, colocando o ? e depois usando o smt.setString, setInt e por ai vai.
No GUJ tem um artigo sobre PreparedStatement.

R

Então, como tinha dito, as outras funções como Adicionar estão funcionando corretamento, por isso acho que digitei algo errado aí.

Não sei o que está errado!

Jair_Rillo_Junior

Tenta fazer o que eu falei e também posta a exceção que ocorreu, assim fica mais fácil para o pessoal te ajudar

R

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na instrução UPDATE.

É a sintaxe mesmo.
Alguma observação?

leoramos

Cara, não tenho muita certeza, mas se não me engano, no Access, tens que colocar os nomes dos campos cercados por colchetes… tipo:

(...) set [nome] = '" + nome + (...)
R
stm.execute("UPDATE dados set nome = '" + nome + "',telefone = " + tel + ",msn = '" + msn + "',email = '" + email  +"' where nome = '" + nome);

Usei este codigo postado pelo Junior e deu outro erro.

java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na seqüência de caracteres na expressão de consulta 'nome = ‘Adriano’

E o certo seria usar stn.executeUpdate? (tentei tb não foi)

R

Bom usei os colchetes, mas continua o mesmo erro, acho que nao influencia em nada.
Estou dando uma olhada nos link que foram passado, mas ainda nenhum resultado.

Mas agradeço pela ajuda, vou continuar tentando aqui, e se alguém tiver alguma idéia do que posso esta fazendo de errado por favor da um toque ^^

wagner_a_lima

Se não me engano, o problema está no seu último parâmetro:
Observe que falta fechar o ’ de nome. Acho que ficaria assim:

stm.execute("UPDATE dados set nome = '" + nome + "',telefone = " + tel + ",msn = '" + msn + "',email = '" + email +"' where nome = '" + nome + "'"); .

Mas é preferível que você utilize PreparedStatement como o pessoal citou anteriormente. Dá uma pesquisada… :slight_smile:

R

Vlwwww Wagner!!!

Deu certinhooo velho!
Nem acredito que o erro tava na minha cara e nao consegui resolver!
Eu tinha certeza que era erro de sintaxe e nada mais!

Obrigado mesmo cara!!!

Alias obrigado a todos que tiveram paciencia e tentaram me ajudar! ^^

Uhulll

r-ngarcia

Esse wagner salvou minha vida tbm. Sem eu ter nada a ver com o assunto

Valeu

Criado 26 de agosto de 2009
Ultima resposta 12 de ago. de 2010
Respostas 11
Participantes 5