Problemas con JDBC

5 respostas
H

Tengo una Function en Postgres que me retorna dos Cursores pero no se como recuperar los valores que me devuelven desde la aplicacion en java.

Alguien me podria ayudar con eso???

5 Respostas

K

Posta sua função ai para que possamos ajudá-lo.
Não sei até onde você consegiu fazer.

H

Lo que tengo es esta funcion:

CREATE  FUNCTION _getdatos_persona_cursor (id1 integer, id2 integer) RETURNS SETOF refcursor AS

declare

ref1 refcursor;

ref2 refcursor;

begin

open ref1 for select * from persona where persona.id = $1;
return next ref1;

open ref2 for select *  from persona where persona.id = $2;

return next ref2;

return;

end

Ahora en la aplicacion java cuando quiero obtener los valores de ref1 y ref2 y lo que me retorna es:
org.postgresql.jdbc3.Jdbc3ResultSet@125844f
org.postgresql.jdbc3.Jdbc3ResultSet@49d67c

CrearConeccion();
con.setAutoCommit(false);

pst = con.prepareStatement(“Select * from _getdatos_persona_cursor(?,?)”, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

pst.setObject(1, id1);

pst.setObject(2, id2);

pst.execute();

rs = pst.getResultSet();

while(rs.next()){

System.out.println(rs.getObject(1));

}

CerrarConeccion();

Me pudieran decir que hago mal aqui…

cassio

Para chamar uma função do postgresql usando java você precisa de um CallableStatement, não de um PreparedStatement.

Pesquise sobre CallableStatement.

H

si pero si yo uso un CallableStatement no me retorna ningun ResultSet, cuando una funcion me retorna mas de un valor no he podido obtener
ResultSet para esta, solo me retorna null.

JMan

Melhor seria vc postar parte do código para quem sabe darmos uma olhada; Agore se seu programa java estiver usando JDBC e vc esta querendo executar uma query, recuperar os valores e etc… podes começar por aqui.

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html

Criado 2 de junho de 2007
Ultima resposta 2 de jun. de 2007
Respostas 5
Participantes 4