Re: [java-list] problemas com JDBC em update

2003-02-14 Por tôpico Rodrigo Miguel
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

2003-02-14 Por tôpico Marcos Oda
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

2003-02-14 Por tôpico Bruno do Amaral Dias Baptista


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

2003-02-13 Por tôpico dbadaniel
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]
-