Java - Consulta no muestra registros

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Consulta no muestra registros

Publicado por LARM (4 intervenciones) el 30/10/2018 18:07:07
Buenos dias

Estoy trabajando en un proyecto en cual debo listar una consulta donde se invoca por medio de una funcion en JAVA el procedure en postgres tipo Cursor.

La consulta fuciona a veces si a veces no, bueno con ciertos parametros nada mas, lo extraño es que valide en la base de datos y funciona bien.

El codigo del JSP es este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
function llenar_tabla_consulta(pcod, pcodigo)
{
 
    $.ajax({
        type: "POST",
            url: "SVConsulta",
            data:
        {
        cod: pcod, //Opcion en SVConsulta
            codigo: pcodigo, //Opcion en la Base de datos Parametro 1
            parametro1: $("#txtced").val(),
            parametro2: $("#txtnom").val(),
            parametro3: $("#cbtipopr").val(),
            parametro4: $("#finicio").val(),
            parametro5: $("#ffin").val(),
            parametro6: $("#cbpr").val()
 
        }
    })
 
    .done(function (resul) {
 
        var datos = JSON.parse(resul);
        var resultado = "", cabecera = '<thead class="thin-border-bottom"> \n\
            <tr> \n\
            <th class="centertd" style="width: 4%">No</th>\n\
            <th class="centertd" style="width: 4%">ID</th>\n\
            <th class="centertd" style="width: 8%">IDENTIFICACION</th>\n\
            <th class="centertd" style="width: 30%">NOMBRE</th>\n\
            <th class="centertd" style="width: 50%">DIRECCION</th>\n\
            <th class="centertd" style="width: 50%">CIUDAD</th>\n\
            <th class="centertd" style="width: 50%">TELEFONO(S)</th>\n\
            \n\
            <th class="centertd" style="width: 50%">CREACION</th>\n\
            <th class="centertd" style="width: 50%">ULTM.ACT</th>\n\
            <th class="centertd" style="width: 20%">ACCION</th>\n\
            </tr> \n\
        </thead>';
        if (datos.length > 0) {
        alert(datos.length);
        for (var i = 0; i < datos.length; i++)
        {
        resultado += '<tr onmouseover="" onmouseout="">\n\
            <td>' + datos[i].fila + '</td>\n\
            <td>' + datos[i].idc + '</td>\n\
            <td>' + datos[i].cedula + '</td>\n\
            <td>' + datos[i].nombreeg + '</td>\n\
            <td>' + datos[i].direccioneg + '</td>\n\
            <td>' + datos[i].ciudadeg + '</td>\n\
            <td>' + datos[i].telfonoseg + '</td>\n\
    <%--<td>' + datos[i].correoeg + '</td>--%>\n\
            <td>' + datos[i].creacioneg + '</td>\n\
            <td>' + datos[i].actualizaeg + '</td>\n\
            <td class="centertd">\n\
            <a  href="Pagina1.jsp?ideg=' + datos[i].idc + '">\n\
                <img src="img/buscar.png" width="25" height="25" \n\
                alt="vista" style="cursor: pointer" title="Ver">\n\
                \n\
                </a> \n\
            </td> \n\
            </tr>';
        }
        } else {
        mensaje();
        $("#tblconsultas").find("tr:gt(0)").remove();
        resultado += '<tr onmouseover="" onmouseout="">\n\
            <td>' + "" + '</td>\n\
            <td>' + "" + '</td>\n\
            <td>' + "" + '</td>\n\
            <td>' + "" + '</td>\n\
            <td>' + "" + '</td>\n\
            <td>' + "" + '</td>\n\
            <td>' + "" + '</td>\n\
    <%--<td>' + datos[i].correoeg + '</td>--%>\n\
            <td>' + "" + '</td>\n\
            <td>' + "" + '</td>\n\
            <td class="centertd">\n\
            <a >\n\
                <img src="img/buscar.png" width="25" height="25" \n\
                alt="vista" style="cursor: pointer" title="Ver">\n\
                \n\
                </a> \n\
            </td> \n\
            </tr>';
        }
        var llenar_tabla = cabecera + resultado;
        $("#tblconsultas").html(llenar_tabla);
        $("#total").val(formatNumber2(datos.length));
    });
}
La informacion se muestra en una tabla HTML.

El codigo JAVA es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public String traer_consultap(String p1, String p2, String p3,String p4,String p5,String p6)
{
    SimpleDateFormat formato= new SimpleDateFormat("yyyy-MM-dd");
    String eventos = "";
 
    try
    {
        ConexionBD.cs = cn.prepareCall("{ ? = call egresados.traer_consultap(?,?,?,?,?,?) }");
        cn.setAutoCommit(false);
        ConexionBD.cs.registerOutParameter(1, Types.OTHER);
        ConexionBD.cs.setString(2, p1);
        ConexionBD.cs.setString(3, p2);
        ConexionBD.cs.setString(4, p3);
        ConexionBD.cs.setString(5, p4);
        ConexionBD.cs.setString(6, p5);
        ConexionBD.cs.setString(7, p6);
        ConexionBD.cs.execute();
        ResultSet r = (ResultSet) ConexionBD.cs.getObject(1);
 
 
        List<DatosConsulta> evt = new ArrayList<>();
        DatosConsulta e;
 
        int fila=0;
 
        while (r.next())
        {
            fila+=1;
 
            e = new DatosConsulta();
            e.setFila(fila);
            e.setIdc(r.getString("ideg").trim());
            e.setCedula(r.getString("cedulaeg").trim());
            e.setNombreeg(r.getString("nombreseg"));
            e.setDireccioneg(r.getString("direccioneg"));
            e.setTelfonoseg(r.getString("telefonoeg"));
            e.setCiudadeg(r.getString("ciudadeg"));
            e.setCorreoeg(r.getString("correoeg"));
            String fechac = formato.format(r.getDate("creacioneg"));
            String fechaa = formato.format(r.getDate("actualizaeg"));
            e.setCreacioneg(fechac);
            e.setActualizaeg(fechaa);
 
            evt.add(e);
        }
 
        String json = new Gson().toJson(evt);
 
 
        eventos = json;
//JOptionPane.showMessageDialog(null, fila);
        r.close();
        ConexionBD.cs.close();
    } catch (SQLException ex) {
        Logger.getLogger(Consulta.class.getName()).log(Level.SEVERE, null, ex);
 
    }
    return eventos;
}
he validado, cuando no funcion parece que no entrara al While.
El JSP dice que el error esta en JSON,parse.

Agradeceria si me colaboraran!! doy cabeza y nada.

Saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Consulta no muestra registros

Publicado por Billy Joel (876 intervenciones) el 30/10/2018 20:02:13
No estoy seguro si estas usando servlets o jsp (html+java) o javascript por un lado y un servlet por otro lado.
¿Podrías colocar el código completo?

JOptionPane + JSP woaaaaaa

otra cosa
1
DatosConsulta e;
declaralo dentro del while ya que los objetos pasan por referencia y puede que estes teniendo resultados no esperados.

PD Si tu servlet está contestando en text/html y lo que estás escribiendo en un json puedes aplicar un
1
response.setContentType("application/json");
y así ya no tendrías que hacer un JSON.parse

Acá dejé tu javascript mas bonito :-)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
{
    $.ajax({
        type: "POST",
        url: "SVConsulta",
        data: {
            cod: pcod, //Opcion en SVConsulta
            codigo: pcodigo, //Opcion en la Base de datos Parametro 1
            parametro1: $("#txtced").val(),
            parametro2: $("#txtnom").val(),
            parametro3: $("#cbtipopr").val(),
            parametro4: $("#finicio").val(),
            parametro5: $("#ffin").val(),
            parametro6: $("#cbpr").val()
        }
    }).done(function (resul) {
        var datos = JSON.parse(resul);
        var resultado = "";
        var cabecera = "<thead class='thin-border-bottom'>"
                + "<tr>"
                + "<th class='centertd' style='width: 4%'>No</th>"
                + "<th class='centertd' style='width: 4%'>ID</th>"
                + "<th class='centertd' style='width: 8%'>IDENTIFICACION</th>"
                + "<th class='centertd' style='width: 30%'>NOMBRE</th>"
                + "<th class='centertd' style='width: 50%'>DIRECCION</th>"
                + "<th class='centertd' style='width: 50%'>CIUDAD</th>"
                + "<th class='centertd' style='width: 50%'>TELEFONO(S)</th>"
                + "<th class='centertd' style='width: 50%'>CREACION</th>"
                + "<th class='centertd' style='width: 50%'>ULTM.ACT</th>"
                + "<th class='centertd' style='width: 20%'>ACCION</th>"
                + "</tr>"
                + "</thead>";
        if (datos.length > 0) {
            alert(datos.length);
            for (var i = 0; i < datos.length; i++) {
                resultado += "<tr onmouseover='' onmouseout=''>"
                        + "<td>" + datos[i].fila + "</td>"
                        + "<td>" + datos[i].idc + "</td>"
                        + "<td>" + datos[i].cedula + "</td>"
                        + "<td>" + datos[i].nombreeg + "</td>"
                        + "<td>" + datos[i].direccioneg + "</td>"
                        + "<td>" + datos[i].ciudadeg + "</td>"
                        + "<td>" + datos[i].telfonoseg + "</td>"
                        + "<%--<td>" + datos[i].correoeg + "</td>--%>"
                        + "<td>" + datos[i].creacioneg + "</td>"
                        + "<td>" + datos[i].actualizaeg + "</td>"
                        + "<td class='centertd'>"
                        + "<a href='Pagina1.jsp?ideg=" + datos[i].idc + "'>"
                        + "<img src='img/buscar.png' width='25' height='25' "
                        + "alt='vista' style='cursor: pointer' title='Ver'>"
                        + ""
                        + "</a> "
                        + "</td> "
                        + "</tr>";
            }
        } else {
            mensaje();
            $("#tblconsultas").find("tr:gt(0)").remove();
            resultado += "<tr onmouseover='' onmouseout=''>"
                    + "<td></td>"
                    + "<td></td>"
                    + "<td></td>"
                    + "<td></td>"
                    + "<td></td>"
                    + "<td></td>"
                    + "<td></td>"
                    + "<%--<td>' + datos[i].correoeg + '</td>--%>"
                    + "<td></td>"
                    + "<td></td>"
                    + "<td class='centertd'>"
                    + "<a >"
                    + "<img src='img/buscar.png' width='25' height='25' "
                    + "alt='vista' style='cursor: pointer' title='Ver'>"
                    + ""
                    + "</a> "
                    + "</td> "
                    + "</tr>";
        }
        var llenar_tabla = cabecera + resultado;
        $("#tblconsultas").html(llenar_tabla);
        $("#total").val(formatNumber2(datos.length));
    });
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Consulta no muestra registros

Publicado por Billy Joel (876 intervenciones) el 30/10/2018 20:38:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public String traer_consultap(String p1, String p2, String p3, String p4, String p5, String p6) {
    SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
    String eventos = "";
    try {
        ConexionBD.cs = cn.prepareCall("{ ? = call egresados.traer_consultap(?,?,?,?,?,?) }");
        cn.setAutoCommit(false);
        ConexionBD.cs.registerOutParameter(1, Types.OTHER);
        ConexionBD.cs.setString(2, p1);
        ConexionBD.cs.setString(3, p2);
        ConexionBD.cs.setString(4, p3);
        ConexionBD.cs.setString(5, p4);
        ConexionBD.cs.setString(6, p5);
        ConexionBD.cs.setString(7, p6);
        ConexionBD.cs.execute();
        ResultSet r = (ResultSet) ConexionBD.cs.getObject(1);
        List<DatosConsulta> evt = new ArrayList<>();
        int fila = 0;
        while (r.next()) {
            fila += 1;
            DatosConsulta e = new DatosConsulta();
            e.setFila(fila);
            e.setIdc(r.getString("ideg").trim());
            e.setCedula(r.getString("cedulaeg").trim());
            e.setNombreeg(r.getString("nombreseg"));
            e.setDireccioneg(r.getString("direccioneg"));
            e.setTelfonoseg(r.getString("telefonoeg"));
            e.setCiudadeg(r.getString("ciudadeg"));
            e.setCorreoeg(r.getString("correoeg"));
            String fechac = formato.format(r.getDate("creacioneg"));
            String fechaa = formato.format(r.getDate("actualizaeg"));
            e.setCreacioneg(fechac);
            e.setActualizaeg(fechaa);
            evt.add(e);
        }
        String json = new Gson().toJson(evt);
        eventos = json;
        r.close();
        ConexionBD.cs.close();
    } catch (SQLException ex) {
        Logger.getLogger(Consulta.class.getName()).log(Level.SEVERE, null, ex);
    }
    return eventos;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Consulta no muestra registros

Publicado por LR (4 intervenciones) el 01/11/2018 18:58:34
Muchas Gracias por tu aporte!!!

Un código que tiene la función Ajax corresponde al JSP y el otro a la clase.

Te comento, modifique algunas cosas que me sugeriste y nada sigue igual.

Modificando la consulta colocándole un LIMIT me muestra algunos registros que no visualizaba..que extraño tiro cabeza y no se que sera el problemas.

La base de datos esta en postgres, y la tabla máximo tiene 28.000 registros, y las consulta que mas puede arrojar son 8.000, solo me permite mostrar 4.255, y aun así no todos los criterios se muestran, de hecho la pagina cuando no el resulset es cero me envía un mensaje diciendo que no hay registros esta validación la hace correctamente, pero en el problemas no muestra ni mensaje ni registros, valido en la base de datos y el SQL funciona perfectamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar