[RESOLVIDO] getInt(String) não implementado pelo Driver JDBC Postgres

13 respostas
emanuell

e agora o que eu faço? Só tenho uma String com o nome da coluna para poder pegar o valor de uma chamada a uma stored procedure

13 Respostas

themasta

nem compila? pq getInt(String) é da interface java.sql.ResultSet

teoricamente devia ser implementado

geralmente a chamada é feita através de um objeto ResultSet

emanuell

compila.
Mas quando executa… lança uma exception :frowning:

themasta

poe o codigo ae :slight_smile:

o getInt(int) é implementado?

emanuell

é sim!

themasta

de repente vc usa o getInt(int) enquanto n descobre o q acontece… só como solucao temporaria, é só descobrir a ordem das colunas na stored procedure :lol:

emanuell

é… tambem pensei nisso

serial ideal usar somente a string

themasta

se postar o código da exception ae talvez fique mais facil de achar a solução.

emanuell

org.postgresql.util.PSQLException: Método org.postgresql.jdbc3.Jdbc3CallableStatement.getInt(String) ainda não foi implementado.

:cry:

themasta

vc quer pegar um parametro passado nessa stored procedure? parece que é isso q esse método faz

se vc quer pegar o valor da coluna que o resultado da execucao dessa stored procedure traz vc deve chamar o getInt(String) de um objeto ResultSet

ex: ResultSet rs = seuCallable.executeQuery(); while(rs.next()) { int i = rs.getInt("nome_da_coluna"); }

emanuell

themasta:
vc quer pegar um parametro passado nessa stored procedure? parece que é isso q esse método faz

se vc quer pegar o valor da coluna que o resultado da execucao dessa stored procedure traz vc deve chamar o getInt(String) de um objeto ResultSet

ex: ResultSet rs = seuCallable.executeQuery(); while(rs.next()) { int i = rs.getInt("nome_da_coluna"); }

org.postgresql.util.PSQLException: Nenhum resultado foi retornado pela consulta.

themasta

pode ser q sua consulta nao retornou nada e vc tá chamando o getInt sem checar se o resultSet tá vazio,

faça o getInt dentro de um while(rs.next()){}

emanuell

themasta:
pode ser q sua consulta nao retornou nada e vc tá chamando o getInt sem checar se o resultSet tá vazio,

faça o getInt dentro de um while(rs.next()){}

Na verdade não é no ResultSet que eu vou atrás do valor do parametro OUT, é no proprio objeto CallableStatement (CallableStatement.getInt(String)).

Chamo o CallableStatement.getInt(int) ele me retorna normalmente…

emanuell

Resolvi!

Utilizei o DatabaseMetaData

Com o método getProcedureColumns(…) eu posso recuperar os parametros da stored procedure e daí comparar os nomes… Quando achar o parametro, pega o index e chama getInt(int) passando o index.

[]'s

Criado 6 de março de 2008
Ultima resposta 7 de mar. de 2008
Respostas 13
Participantes 2