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

executeQuery no funciona todas las veces

Estas en el tema de executeQuery no funciona todas las veces en el foro de Java en Foros del Web. Gracias por su ayuda....esta parte del programa ejecuta un query teniendo en cuenta unas variables (ciudad, ARTICULO, NIVEL) y funciona bien para algunas CIUDADES, pero ...
  #1 (permalink)  
Antiguo 11/06/2014, 13:55
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 11 años
Puntos: 1
executeQuery no funciona todas las veces

Gracias por su ayuda....esta parte del programa ejecuta un query teniendo en cuenta unas variables (ciudad, ARTICULO, NIVEL) y funciona bien para algunas CIUDADES, pero para otras no....si ejecuto el query por fuera, funciona bien, pero en el programa no, es como si algun valor nulo impidiera que funcionara, y lo peor en otras ciudades me trae solo 7 registros de 12 (ene,feb,....dic), pero es en el momento en que ejecuta el query....ALGUNA IDEA?

Sospecho que es en esta linea
psP = conn2.prepareStatement(consulta);
ResultSet rs =psP.executeQuery();

por que alli al hacer DEBUG, me dice cuantos registros llegaron y efectivamente para esas ciudades es 0 o 7 o 1 etc.

Repito al ejecutar la consulta por fuera en PL directamente sobre la BD funciona bien para todas las ciudades.

Código Java:
Ver original
  1. public LinkedList<RegistrosProd> getEcoProdSuc(String idSUC, int idRamo, int Nivel) throws SQLException
  2.    {        
  3.       LinkedList<RegistrosProd> listaEcoProd = new LinkedList<RegistrosProd>();
  4.       Connection conn2 = null;
  5.       try {
  6.          conn2 = ConexionEco.getConexion();
  7.       } catch (Exception e) {      
  8.          System.out.println(e.getMessage());  
  9.       }    
  10.      
  11.       if (conn2 != null) {
  12.          PreparedStatement psP;
  13.          String consulta = null;
  14.          if (Nivel==1){
  15.             consulta="SELECT ...... no lo pego por que es muy largo" ;
  16.          }
  17.          try {
  18.             psP = conn2.prepareStatement(consulta);
  19.             ResultSet rs =psP.executeQuery();
  20.             while (rs.next()){
  21.                RegistrosProd contactoP = new RegistrosProd();
  22.                contactoP.setsucux(rs.getInt("sucu"));
  23.                contactoP.setDescsuc(rs.getString("descsuc"));
  24.                contactoP.setMes(rs.getInt("mes"));
  25.                contactoP.setProdnnrealx(rs.getInt("prodnnrealx"));
  26.                contactoP.setProynntx(rs.getInt("proynntx"));
  27.                contactoP.setProdrnrealx(rs.getInt("prodrnrealx"));
  28.                contactoP.setProyrntx(rs.getInt("proyrntx"));
  29.                listaEcoProd.add(contactoP);
  30.             }
  31.          } catch (SQLException e) {
  32.            System.out.println(e.getMessage());
  33.          } catch (Exception e) {      
  34.            System.out.println(e.getMessage());
  35.          } finally {
  36.             try { // cierro la conexion con la base de datos
  37.                if (conn2 != null && !conn2.isClosed()) {                  
  38.                   conn2.close();
  39.                }      
  40.             } catch (SQLException e) {
  41.                System.out.println(e.getMessage());
  42.             } catch (Exception e) {          
  43.                System.out.println(e.getMessage());
  44.             }
  45.          }      
  46.       }        
  47.     return listaEcoProd;
  48.    }
  #2 (permalink)  
Antiguo 11/06/2014, 16:07
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 11 años
Puntos: 1
Respuesta: executeQuery no funciona todas las veces

No es en el execute Query, este funciona bien, es cuando le estoy metiendo los datos a la lista, dentro del While.

Sospecho que es algo en la DATA, como un tipo de dato numerico, pero cumple con los requisitos para ser INTEGER, no he dado con el chiste...alguna idea por favor.
  #3 (permalink)  
Antiguo 11/06/2014, 17:22
 
Fecha de Ingreso: diciembre-2012
Mensajes: 53
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: executeQuery no funciona todas las veces

Buenas, podrias pegar el error que te tira..?

como estás invocando el metodo getEcoProdSuc(String idSUC, int idRamo, int Nivel) ?
  #4 (permalink)  
Antiguo 12/06/2014, 07:47
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 11 años
Puntos: 1
Respuesta: executeQuery no funciona todas las veces

Descubri que hay datos que superan el limite para el tipo INTEGER, pero al cambiarlo por FLOAT o por DOUBLE, me genera un error de "falta de presicion".....cual puede ser la solucion ?
  #5 (permalink)  
Antiguo 12/06/2014, 09:00
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: executeQuery no funciona todas las veces

http://docs.oracle.com/javase/tutori...datatypes.html
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: programa, string, todas, valor, variable, veces
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 14:00.