Re: [java-list] problemas com JDBC em update
Quando você chama pst.getString(1, getList()), na verdade a sua query estará ficando assim: update sites set flag_del='S' where site in 'CCA', 'CAM' Ele estará buscando pela string 'CCA', 'CAM' ! No PreparedStatement deve ser usado um ponto de interrogação (?) para cada atributo a ser fornecido. Dê uma olhada na documentação da API. Abraços, Rodrigo Miguel -Mensagem Original- De: dbadaniel [EMAIL PROTECTED] Para: java [EMAIL PROTECTED] Enviada em: Quinta-feira, 13 de Fevereiro de 2003 09:50 Assunto: [java-list] problemas com JDBC em update Saudações ! Gente estou tentando executar um update mas estou tendo problemas . o update é o seguinte : update sites set flag_del='S' where site in ('CCA','CAM') ; na minha classe o update ficou assim (apenas ilustração tem mais condigo que isso): String query=update sites set flag_del='S' where site in (?) ; int rows=0; PreparedStatement pst; pst=Conexao.PreparedStatement(query); pst.setString(1,getList()); rows=pst.executeUpdate(); o metodo getList() retorna uma String assim 'CCA','CAM' esse codigo não atualiza nem uma linha e com certeza iria atualizar duas linhas pois eu testei esse update na na mão e executou cetinho . agora se eu mudar a String e colocar assim : String query=update sites set flag_del='S' where site in (+getList()+) ; o comando funciona !! Alguém saberia pq isso acontece ? valew !! --- UOL, o melhor da Internet http://www.uol.com.br/ -- LISTA SOUJAVA http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] - -- LISTA SOUJAVA http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -
[java-list] Re:[java-list] problemas com JDBC em update
Daniel, O que está acontecendo é que o PreparedStatement está esperando apenas um filtro, pois só existe um ? no seu comando SQL. Então ele está entendendo que vc o getList() seria apenas uma parâmetro e não dois como vc está querendo, vc teria q colocar mais um ?. No caso ele está entendendo: update sites set flag_del='S' where site in('CCA, CAM'); se vc rodar esse comando ele não irá atualizar nada. O comando SQL ficaria assim String query=update sites set flag_del='S' where site in (?, ?) ; PreparedStatement pst; pst=Conexao.PreparedStatement(query); pst.setString(1,getList()); //Aqui vc passaria somente o CCA pst.setString(2,getList()); //Aqui vc passaria somente o CAM rows=pst.executeUpdate(); Vc teria q mudar o seu método getList() para que ele retornasse um de cada vez e no String query, vc teria q colocar o número de parametros correspondentes que o getList () iria retornar. Não sei se fui muito claro. Abraços, Marcos Oda Saudações ! Gente estou tentando executar um update mas estou tendo problemas . o update é o seguinte : update sites set flag_del='S' where site in ('CCA','CAM') ; na minha classe o update ficou assim (apenas ilustração tem mais condigo que isso): String query=update sites set flag_del='S' where site in (?) ; int rows=0; PreparedStatement pst; pst=Conexao.PreparedStatement(query); pst.setString(1,getList()); rows=pst.executeUpdate(); o metodo getList() retorna uma String assim 'CCA','CAM' esse codigo não atualiza nem uma linha e com certeza iria atualizar duas linhas pois eu testei esse update na na mão e executou cetinho . agora se eu mudar a String e colocar assim : String query=update sites set flag_del='S' where site in (+getList()+) ; o comando funciona !! Alguém saberia pq isso acontece ? valew !! --- UOL, o melhor da Internet http://www.uol.com.br/ -- LISTA SOUJAVA --- - http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list% 40soujava.org.br para sair da lista: envie email para java-list- [EMAIL PROTECTED] - --- UOL, o melhor da Internet http://www.uol.com.br/ -- LISTA SOUJAVA http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -
Re: [java-list] problemas com JDBC em update
Fala. Nao tenho certeza, mas acredito que o setParameter( n, X ) adiciona aspas simples (') no local do ponto de interrogacao. Repito: Nao tenho certeza, mas em alguns casos isso ocorreu comigo. Logo, em seu primeiro exemplo, a string teria ficado: update sites set flag_del=\'S\' where site in (\'\'CCA\',\'CAM\'\') ao inves de: update sites set flag_del=\'S\' where site in (\'CCA\',\'CAM\') E isso gera um SQLException. []'s, Bruno do Amaral. String query=update sites set flag_del='S' where site in (+getList()+) ; On Thu, 13 Feb 2003, dbadaniel wrote: Saudações ! Gente estou tentando executar um update mas estou tendo problemas . o update é o seguinte : update sites set flag_del='S' where site in ('CCA','CAM') ; na minha classe o update ficou assim (apenas ilustração tem mais condigo que isso): String query=update sites set flag_del='S' where site in (?) ; int rows=0; PreparedStatement pst; pst=Conexao.PreparedStatement(query); pst.setString(1,getList()); rows=pst.executeUpdate(); o metodo getList() retorna uma String assim 'CCA','CAM' esse codigo não atualiza nem uma linha e com certeza iria atualizar duas linhas pois eu testei esse update na na mão e executou cetinho . agora se eu mudar a String e colocar assim : String query=update sites set flag_del='S' where site in (+getList()+) ; o comando funciona !! Alguém saberia pq isso acontece ? valew !! --- UOL, o melhor da Internet http://www.uol.com.br/ -- LISTA SOUJAVA http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] - -- LISTA SOUJAVA http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -
[java-list] problemas com JDBC em update
Saudações ! Gente estou tentando executar um update mas estou tendo problemas . o update é o seguinte : update sites set flag_del='S' where site in ('CCA','CAM') ; na minha classe o update ficou assim (apenas ilustração tem mais condigo que isso): String query=update sites set flag_del='S' where site in (?) ; int rows=0; PreparedStatement pst; pst=Conexao.PreparedStatement(query); pst.setString(1,getList()); rows=pst.executeUpdate(); o metodo getList() retorna uma String assim 'CCA','CAM' esse codigo não atualiza nem uma linha e com certeza iria atualizar duas linhas pois eu testei esse update na na mão e executou cetinho . agora se eu mudar a String e colocar assim : String query=update sites set flag_del='S' where site in (+getList()+) ; o comando funciona !! Alguém saberia pq isso acontece ? valew !! --- UOL, o melhor da Internet http://www.uol.com.br/ -- LISTA SOUJAVA http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -