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
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
rafegal
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
rafegal
[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
rafegal
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
rafegal
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…
R
rafegal
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