entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

problema al insertar el registro en la tabla y actualizar un campo

Hola espero que me puedan ayudar o darme una opinion, el registro lo hace muy bien pero al momento de implementar la consulta de obtener el max id que se registro y la consulta de actualizacion del campo de registro de salida, ya no funciona ni el insertado de registro y mucho menos el de actualizar, es al momento de dar clic en el boton se insertan por default en los campos registro entrada y salida con el formato "yyyy-MM-dd HH:mm:ss"; entonces una vez registrado,obtengo el max id que se registro por ultima vez y verifico si el registro es diferente de vacio; que realize la actualizacion para el campo de registro de salida cuando se de le clic al boton al momento que el empleado realiza su registro de salida y asi haga la actualizacion.

public boolean insertar(modeloAsistencia modeloAsistencia) {

    PreparedStatement psmt = null, psmt2 = null, psmt3 = null;
    ResultSet tabla = null;
    boolean insertOK = false;

    try {
        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/asistencia");
        Connection con = ds.getConnection();
        //verifico si el no hay registro que lo inserte 
        if (modeloAsistencia.getId_registro_asistencia() == 0) {
            psmt = con.prepareStatement("INSERT INTO REGISTRO(FECHA,ID_TRABAJADOR,HORA_ENTRADA,HORA_SALIDA) VALUES(?,?,?,?);");
        }

        psmt.setString(1, modeloAsistencia.getFecha_registro_asistencia());
        psmt.setInt(2, modeloAsistencia.getId_trabajador());
        psmt.setTimestamp(3, (Timestamp) modeloAsistencia.getRegistro_hora_entrada());
        psmt.setTimestamp(4, (Timestamp) modeloAsistencia.getRegistro_hora_salida());
        if (psmt.executeUpdate() == 1) {
            psmt2 = con.prepareStatement(SELECT MAX(ID_REGISTRO) AS ID FROM REGISTRO;");
            tabla = psmt2.executeQuery();
            tabla.next();
            int id_registro_asistencia = 0;
            id_registro_asistencia = tabla.getInt(1);
            if (psmt2.executeUpdate() == 1) {
                if (id_registro_asistencia != 0) {
                                   //inicia la consulta de actualizacion
                    psmt3 = con.prepareStatement("UPDATE REGISTRO_ASISTENCIA SET REGISTRO_HORA_SALIDA='"+modeloAsistencia.getRegistro_hora_salida()+"' WHERE ID_REGISTRO="+modeloAsistencia.getId_registro_asistencia()+"");
                }
            }
            if (psmt3.executeUpdate() == 1) {
                psmt3.close();
                insertOK = true;
            } else {
                insertOK = false;
            }
        } else {
            insertOK = false;
        }
        psmt.close();
        psmt2.close();
        tabla.close();
        con.close();
    } catch (Exception e) {
        System.out.println("Error: " + e);
    }
    return insertOK;
}

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta