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
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


0