Java - ResultSet VACIO.

 
Vista:

ResultSet VACIO.

Publicado por Maria Ramos (7 intervenciones) el 02/10/2007 08:33:07
Hola de nuevo, no me canso nunca de daros las gracias por vuestra ayuda, hasta ahora, todas las veces me habeis aportado soluciones geniales, asi que gracias de nuevo.

Mi problema de hoy, se basa en un error que me produce una excepcion SQL: Illegal operation on empty result set.

El código es el siguiente:

public static Propietario RecuperaDetallePropBBDD(int Cod_inmueble) throws SQLException, IOException
{
Propietario prop = new Propietario();

Connection con = null;
java.sql.PreparedStatement st = null;
java.sql.PreparedStatement st2 = null;
java.sql.ResultSet rs;
java.sql.ResultSet rs2;

int Cod_prop;

con = Conexion.getConn();//devolvemos la conexion establecida desde la clase CONEXION para operar con ella
st = con.prepareStatement("SELECT * FROM inmueble WHERE (inmueble.Cod_inmueble = '"+Cod_inmueble+"');");
rs = st.executeQuery(); //este metodo devuelve un resulset

rs.first();

Cod_prop = rs.getInt("Cod_propietario_representante");

//st.clearParameters();
st2 = con.prepareStatement("SELECT * FROM propietario WHERE (propietario.Cod_propietario = '"+Cod_prop+"');");
rs2 = st2.executeQuery();

rs2.first();//nos situamos el puntero del Result set en su primera y unica posible posicion para poder acceder a los datos

prop.setDireccion(rs2.getString("direccion_prop"));
prop.setPoblacion(rs2.getString("poblacion_prop"));
prop.setCP(rs2.getString("CP_prop"));
prop.setNombre(rs2.getString("nombre_prop"));
prop.setApellidos(rs2.getString("apellidos_prop"));
prop.setNumDocumento(rs2.getString("num_documento_prop"));
prop.setTelefono(rs2.getString("telefono_prop"));
prop.setTelefono2(rs2.getString("telefono_prop2"));
prop.setCod_propietario(rs2.getInt("Cod_prop"));
prop.setDoc_acreditativo(rs2.getInt("doc_acreditativo_prop"));
prop.setProvincia_prop(rs2.getInt("provincia_prop"));

con.close();
return prop;

}

hasta ahora no habia tenido ningun problema con los ResultSet, pero al tratar de hacer un segundo st2.PreparedStatement y después rs2 = st2.executeQuery( ) me dice que el rs2 está vacio... como lo puedo arreglar?, como veis necesito los datos del primer RS para procesar el segundo, y hasta ahi lo hace bien, pero al cargar el 2º como decía se produce esta excepción.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:ResultSet VACIO.

Publicado por Pablo CD (51 intervenciones) el 02/10/2007 08:42:50
Cuando haces:

Cod_prop = rs.getInt("Cod_propietario_representante");

//st.clearParameters();
st2 = con.prepareStatement("SELECT * FROM propietario WHERE (propietario.Cod_propietario = '"+Cod_prop+"');");
rs2 = st2.executeQuery();

Cod_prop es de tipo entero, con lo que luego no deberías usar la comilla simple :

' "+Cod_prop+" '

No se si puede ser eso. Has probado ambas consultas contra la BBDD ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar