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

Consulta filtrada....

Estas en el tema de Consulta filtrada.... en el foro de Java en Foros del Web. Buenas, estoy haciendo una consulta filtrada para que me muestre un serie de libros identificador por un numero, me debe de mostrar los libros que ...
  #1 (permalink)  
Antiguo 18/06/2010, 16:53
 
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Consulta filtrada....

Buenas, estoy haciendo una consulta filtrada para que me muestre un serie de libros identificador por un numero, me debe de mostrar los libros que esten entre 2 numeros que le paso por 2 textfield... Bien, me pone los de en medio pero no los extremos, cuando yo creo que es incluyen, el metodo que he hecho en el control base de datos para esto es el siguiente, a este metodo lo llamo desde la ventana principal donde estan los 2 textfield y el boton, que al pulsarlo, debera imprimir lo buscado... En la impresion no tengo ningun problema.

public static ResultSet cargarListado(String aux, String aux2, Boolean seleccionado, Connection cone){
Statement ejecutor;
ResultSet res;
String sql = "Select * FROM libros WHERE libros.numRegistro >= '"+aux+"' AND libros.numRegistro <= '"+aux2+"';";
System.out.println(sql);
try {
ejecutor = cone.createStatement();
res = ejecutor.executeQuery(sql);
return res;
} catch (SQLException ex) {
Logger.getLogger(ControlBD.class.getName()).log(Le vel.SEVERE, null, ex);
}
return null;

No se si es que no tengo bien puestos los iguales o que, pero me muestro por ejemplo los libros que hay entre los codigos 2 y 6 pero no el 2 y el 6... Muchas gracias desde ya!! UN saludo!!

Última edición por rafa_granada; 18/06/2010 a las 18:38
  #2 (permalink)  
Antiguo 21/06/2010, 12:52
 
Fecha de Ingreso: enero-2005
Mensajes: 15
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Consulta filtrada....

usa BETWEEN en la consulta, asi te trae los valores que esten entre los que le pasas.

String sql = "Select * FROM libros WHERE libros.numRegistro BETWEEN '"+aux+"' AND '"+aux2+"';";
  #3 (permalink)  
Antiguo 22/06/2010, 08:22
 
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta filtrada....

Cita:
Iniciado por paquil Ver Mensaje
usa BETWEEN en la consulta, asi te trae los valores que esten entre los que le pasas.

String sql = "Select * FROM libros WHERE libros.numRegistro BETWEEN '"+aux+"' AND '"+aux2+"';";
Nada, me sigue sacando lo mismo que con el < y > que... Me coje el ultimo valor, pero el primero nunca, sea el primero el que sea.. y es raro, porque la sentencia SQL, la he imprimido por consola y me sale que se ejecuta de forma correcta...
  #4 (permalink)  
Antiguo 22/06/2010, 08:30
 
Fecha de Ingreso: marzo-2009
Ubicación: Santa Marta
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Consulta filtrada....

si no estoy mal, estas tratando de comparan como variables tipo String, lo que me parece muy raro, ya que si comparas cadenas de texto no es lo mismo que comparar numeros, lo digo por que tienes aux entre comillas simples
  #5 (permalink)  
Antiguo 22/06/2010, 09:18
 
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta filtrada....

Cita:
Iniciado por decoArguello Ver Mensaje
si no estoy mal, estas tratando de comparan como variables tipo String, lo que me parece muy raro, ya que si comparas cadenas de texto no es lo mismo que comparar numeros, lo digo por que tienes aux entre comillas simples
Asi es, y por ahi pienso yo que esta el error, pero el tema es que no se como hacerlo para compararlo con int... Si pongo el int en la sentencia del control de BD no me da ningun error, pero al poner los int en la ventana principal, como los obtengo de 2 textfield, me da un error de retorno, por lo que decidi ponerlo String... Si sabes como solucionarlo dimelooo que no se que hacer ya
  #6 (permalink)  
Antiguo 22/06/2010, 09:31
 
Fecha de Ingreso: marzo-2009
Ubicación: Santa Marta
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Consulta filtrada....

hola, que tipo de datos estas manejando en el campo libros.numRegistro, ya que si a la consulta le mandas un tipo varchar, y no devuelve error es por que tal vez este campo sea tipo varchar... deberias manejarlo como entero, para que te pueda funcionar correctamente, en la consulta deberias mandarle los datos de la siguiente manera

String sql = "Select * FROM libros WHERE libros.numRegistro BETWEEN "+aux+" AND "+aux2+";";

para que el contenido de las variables aux y aux2 sean tratados como entero al momento de realizar la consulta.
  #7 (permalink)  
Antiguo 22/06/2010, 11:26
 
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta filtrada....

Cita:
Iniciado por decoArguello Ver Mensaje
hola, que tipo de datos estas manejando en el campo libros.numRegistro, ya que si a la consulta le mandas un tipo varchar, y no devuelve error es por que tal vez este campo sea tipo varchar... deberias manejarlo como entero, para que te pueda funcionar correctamente, en la consulta deberias mandarle los datos de la siguiente manera

String sql = "Select * FROM libros WHERE libros.numRegistro BETWEEN "+aux+" AND "+aux2+";";

para que el contenido de las variables aux y aux2 sean tratados como entero al momento de realizar la consulta.
Pues si, tienes razon, tiene que ir asi, estaba despistado y asi es, pero no entiendo porque ahora me da un error en la sentencia SQL.

Etiquetas: Ninguno
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 11:11.