| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2007 16:33:54
|
felipe_thrash
JavaGuru
![[Avatar]](/images/avatar/0594763bf6171668f8bc4cd79ebcbd63.jpg)
Membro desde: 02/07/2007 13:36:02
Mensagens: 240
Localização: Brasil
Offline
|
pessoal,
no mySQL... quando dou um insert, e um update é assim:
que tratando em java fica assim né:
pq no PostgreSQL, ele tem a frescura de no update, ele querer aspas ??
e como trato isso na PreparedStatement ?
alguem já passou por isso ?
valew
|
Need money for a f*%#ing beer!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2007 16:51:58
|
celso.martins
Virtual Machine Man
![[Avatar]](/images/avatar/3ff4cea152080fd7d692a8286a587a67.jpg)
Membro desde: 19/06/2006 13:54:23
Mensagens: 699
Localização: Rio de Janeiro
Offline
|
Amigo, você só precisa de aspas simples se o seu campo for Varchar e Data (Timestamps, Dates, etc). Aspas duplas se o nome do campo tiver letras maiúsculas.
O resto não precisa não.
Para você passar o valor para um parâmetro String (?), basta usar o setString do stmt.
Trabalho com PostgreSQL há quase 4 anos e sempre funcionou dessa forma que to te passando.
Abraços!
|
Hoje melhor que ontem e pior que amanhã.
Desenvolvimento Psicopata - Qualidade Total
Twitter
Infoblogs - A vitrine do seu blog |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2007 16:54:05
|
pedro.braz
Entusiasta Java
Membro desde: 04/09/2007 19:58:09
Mensagens: 20
Localização: Penápolis SP
Offline
|
try{
String sql = "update pessoa set nome=?, endereco=? ";
sql += " where id=?";
Connection conn = ConnectionDB.getConnection();
pStmt = conn.prepareStatement(sql);
pStmt.setString(1, pessoa.getNome());
pStmt.setString(2, pessoa.getEndereco());
pStmt.setInt(3,pessoa.getId());
pStmt.execute();
}
funciona numa boa.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2007 17:20:00
|
felipe_thrash
JavaGuru
![[Avatar]](/images/avatar/0594763bf6171668f8bc4cd79ebcbd63.jpg)
Membro desde: 02/07/2007 13:36:02
Mensagens: 240
Localização: Brasil
Offline
|
meus campos no BD são "character"
parece q é esse tipo de campo... por ai
e o engraçado é que..
rodando a query normal...
retorna 0 linha afetada...
e com aspas simples
retorna 1 linha afetada!
mas como trato no código ??
a solução acima não funcionou tb não
ou simplesmente troco os tipos de campo ?
|
Need money for a f*%#ing beer!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2007 18:05:19
|
cassio
GUJ Master
![[Avatar]](/images/avatar/8ae7398026ed8f2172aefd6cbc856bc8.jpg)
Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline
|
Não é o postgresql que é enjoado, você que não está prestnado atenção...
Sem aspas o seu 01 vira 1 pois ele interpreta como integer e não como caractere. Neste caso, zero à esquerda é descartado. Por isso que neste exemplo que vc passou vc é obrigado a colocar aspas simples:
|
Cássio Marques
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2007 14:25:26
|
felipe_thrash
JavaGuru
![[Avatar]](/images/avatar/0594763bf6171668f8bc4cd79ebcbd63.jpg)
Membro desde: 02/07/2007 13:36:02
Mensagens: 240
Localização: Brasil
Offline
|
vc é obrigado a colocar aspas simples:
e como trato isso no prepareStatement ??
perdoem minha ignorância...
|
Need money for a f*%#ing beer!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2007 14:32:30
|
raci0nal
JavaChild
![[Avatar]](/images/avatar/a50f4ea03581f27aae82ea135f1b6fb4.jpg)
Membro desde: 09/01/2007 12:53:24
Mensagens: 147
Offline
|
Não precisa tratar.
Você só precisa saber qual o tipo do campo lá no BD.
Se for inteiro, use:
Se for string, use:
Acho que a confusão está acontecendo pois você está esperando que este campo seja inteiro, quando na verdade ele está como string lá no Postgre, por isso a necessidade das ''.
Abraços,
Marcos Antonio Campos Jordão''
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2007 14:39:20
|
felipe_thrash
JavaGuru
![[Avatar]](/images/avatar/0594763bf6171668f8bc4cd79ebcbd63.jpg)
Membro desde: 02/07/2007 13:36:02
Mensagens: 240
Localização: Brasil
Offline
|
então... estou usando setString sim....
mas olha só... meu ID... vou usar tanto nº quanto letras...
tipo um ID = AA014
e estou usando character no banco, e string no código... em TOdos so campos....
quero saber se tem como reformular essa query dentro do código... ???
valew!
|
Need money for a f*%#ing beer!
|
|
|
 |
|
|