Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/03/2008, 17:45
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 17 años
Puntos: 260
Sonrisa Re: Error: : Before start of result set

Hola,
Creo que posiblemente el error está aquí:

dentro=true;
while (dentro||rs2.next()){

La primera vez "dentro" tiene el valor true. El bucle while es evaluado como true, aunque el resultSet.next() devuelva false, significando que no hay datos (aunque nunca es evaluada y nunca avanza al siguiente registro).

while (true || false) { // Verdadero ó Falso = Verdadero
// Y al llegar a esta instrucción genera un error:
buscado=rs2.getInt(1); // Puesto que rs2 está antes del primer registro.
}

Saludos,

PS:

Nunca es evaluada por que java utiliza el método "Short Circuit" contrario a otros lenguajes como Visual Basic que usan "Long Circuit". Cuando se usa || con varios valores, inmediatamente después que el compilador sabe la respuesta; es decir que sabe que el resultado va a ser true, no continúa evaluando las expresiones. Por ejemplo:

if (true || myFunc()) {

... myFunc nunca va a ser evaluada, por que el compilador sabe la respuesta antes de evaluarla; sabe que verdadero ó "cualquier cosa (verdadero o falso)" siempre va a ser verdadero. Por lo tanto en tu caso rs2.next() ... nunca se llega a evaluar, y nunca avanza al primer registro.

http://java.sun.com/docs/books/jls/t...ons.html#15.24

Última edición por HackmanC; 28/03/2008 a las 18:19 Razón: short circuit