Foros del Web » Programación para mayores de 30 ;) » Java »

problemas recorriendo un resultset

Estas en el tema de problemas recorriendo un resultset en el foro de Java en Foros del Web. Buenas tardes a todos, Despues de hacer una consulta a base de datos quiero recorrer el resultset pero no se por que no empieza en ...
  #1 (permalink)  
Antiguo 18/12/2008, 08:54
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
problemas recorriendo un resultset

Buenas tardes a todos,

Despues de hacer una consulta a base de datos quiero recorrer el resultset pero no se por que no empieza en la primera posición.
Código:
public AyudasDTO[] metodoDeBusqueda(ArrayList ayudas) throws SQLException {
		StringBuffer select = new StringBuffer();
		Vector parametros = new Vector();
		AyudasDTO[] resulBusqueda = null;
		String cadena = "";

		for (int j = 0; j < ayudas.size(); j++) {

			if (j == 0)
				cadena = "'" + ayudas.get(j) + "'";
			else
				cadena += "," + "'" + ayudas.get(j) + "'";
		}

		select.append("SELECT  " +

		"AYPR_DENOMINACION, " + "AYPR_NIF_CENTRO, " + "AYPR_REFERENCIA "
				+ "FROM TD_AYUDAS_CENAGRU_WORK " + "WHERE 1 = 1 ");

		select.append(" AND AYPR_NIF_CENTRO  IN (");
		select.append(cadena);
		select.append(")");
		select.append(" AND AYPR_NUM_AGRU IN (");
		select.append(" SELECT PRMA_REF_CENT FROM TD_PREMIADOS_CENAGRU");
		select.append(")");
		String query = select.toString();

		PreparedStatement statement = null;
		ResultSet resultset = null;

		Object[] values = new Object[parametros.size()];
		int i = 0;
		for (Iterator it = parametros.iterator(); it.hasNext();) {
			values[i++] = it.next();
		}

		try {
			statement = con.prepareStatement(query);

			if (values != null) {
				for (int j = 0, k = 1; j < values.length; j++, k++) {
					statement.setString(k, values[j].toString());
				}
			}

			resultset = statement.executeQuery();
                        //Aquí me dice que no es la primera posicion
			System.out.println("isFirst:" + resultset.isFirst());

			resulBusqueda = new AyudasDTO[ayudas.size()];
			int m = 0;
			
			while (resultset.next()) {
				AyudasDTO ayuda = new AyudasDTO();
				ayuda.setDenominacionCentro(resultset
						.getString("AYPR_DENOMINACION"));
				ayuda.setNifCentro(resultset.getString("AYPR_NIF_CENTRO"));
				ayuda.setReferencia(resultset.getInt("AYPR_REFERENCIA"));
				resulBusqueda[m] = ayuda;
				System.out.println(m);
				m++;
			}
		} catch (SQLException e) {
			log.info(e.getMessage());
			throw new SQLException("error al buscar solicitudes de ayuda "
					+ e.getMessage());
		} finally {
			closeResultSet(resultset);
			closePreparedStatement(statement);
		}

		return resulBusqueda;
	}
La consulta en cuestion lanzada directamente con el TOAD me devuelve 2 resultados, pero como no puedo posicionarme a mano en la primera posición solo me inserta en la variable resultBusqueda un registro.
Alguien me puede dar alguna idea?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 18/12/2008, 10:08
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: problemas recorriendo un resultset

Por misterioso que parezca ahora sin cambiar el código funciona, así que supongo sería algo de la base de datos que se escapa a mi conocimiento.
Eso si ahora estoy cagado por si se da otro caso misterioso en el que falle
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:18.