Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/05/2015, 22:36
medinabao
 
Fecha de Ingreso: mayo-2015
Ubicación: Medellin
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta Error al generar nuevo registro en base de datos SQL

Buenas noches comunidad "Foro de la web", quiero agradecer y felicitar a todas y cada una de las personas, que con su conocimiento aportan a la solución de inquietudes y formación de nuevos programadores.
Mi consulta es la siguiente: estoy iniciándome en el mundo de la programación java en el cual estoy desarrollando una aplicación que permita hacer el registro de personas a una empresa x, todo el procesos de asignación de personas a la base de datos ya está creada y se puede generar el primer registro de ingresos y salida:


Al guardar el primer registro, el código busca en una consulta la cedula o DNI del usuario, lo agrega colocándole la fecha y la hora_ini, dejando el campo hora_fin en blanco y lo guarda en una tabla llamada “Registros”, luego para hacer la salida el código valida si esta cedula o DNI está en la tabla “Registros” y le asigna la hora_fin.



El problema empieza cuando voy a generar el ingreso de la misma persona (ya que el sistema debe de permitir el ingreso y salida de una persona n cantidad de veces al día), pero lo que hace es que actualiza el mismo registro (En la tabla “Registros”, no tiene llave primaria para que permita duplicados).

Mi pregunta es cómo hacer como validar que al encontrar estos tres campos (fecha, hora_ini, hora_fin) llenos o con datos, me genere un nuevo registro?

Agradezco por la colaboración que me puedan brindar.

Dios les Bendiga.

Nota: dejo el codigo que uso para hacer los registros:
Código Java:
Ver original
  1. private void BTNCONSULTARActionPerformed(java.awt.event.ActionEvent evt) {                                            
  2.  
  3.         String idempleado=this.RCODIGO.getText();
  4.        
  5.        
  6.        
  7.         try {
  8.             PreparedStatement cst = con.getConnection().prepareStatement("{call BUSCAR_REGISTRO_ACTUAL(?)}");
  9.             cst .setString(1, idempleado);
  10.             r=cst .executeQuery();
  11.            
  12.              if(r.next()){
  13.                  
  14.                  JOptionPane.showMessageDialog(this,"Usuario Encontrado EN TABLA REGISTRO!!","Aviso",JOptionPane.INFORMATION_MESSAGE);
  15.              
  16.                  
  17.                     this.RCEDULA_EMPLEADO.setText(r.getString(1));
  18.                     this.RNOM_EMPLEADO.setText(r.getString(2));
  19.                     this.RAPE_EMPLEADO.setText(r.getString(3));
  20.                     this.RNOM_EMPLEADOR.setText(r.getString(4));
  21.                     this.RAPE_EMPLEADOR.setText(r.getString(5));
  22.                     this.RFECHA_INGRESO.setText(r.getString(6));
  23.                     this.RHORA_INGRESO.setText(r.getString(7));
  24.                     this.RHORA_SALIDA.setText(r.getString(8));
  25.                     this.RNOM_CONSECIONARIO.setText(r.getString(9));
  26.                     this.RACTIVIDAD.setText(r.getString(10));
  27.                     this.RMESA_SERVI.setText(r.getString(11));
  28.                    
  29.                     Calendar cal = Calendar.getInstance();
  30.                     String hora = cal.get(cal.HOUR)+":"+ cal.get(cal.MINUTE)+":"+ cal.get(cal.SECOND);
  31.                     String fecha = cal.get(cal.DAY_OF_MONTH)+"/"+ cal.get(cal.MONTH)+"/"+ cal.get(cal.YEAR);
  32.                      
  33. //                    if(this.RFECHA_INGRESO.getText().equals(RFECHA_INGRESO)&&(this.RHORA_INGRESO.getText().equals(RHORA_INGRESO)&&
  34. //                       (this.RHORA_SALIDA.getText().equals(RHORA_SALIDA)))){
  35. //                        this.registroNuevo();
  36. ////////                        
  37. //                        }
  38. //                    else
  39.                     if(this.RFECHA_INGRESO.getText().equals("")&&(this.RHORA_INGRESO.getText().equals(""))){
  40.                         this.RFECHA_INGRESO.setText(fecha.toString());
  41.                         this.RHORA_INGRESO.setText(hora);
  42.                         this.RBTNMODIFICAR_SALIDA.setEnabled(false);
  43.                        
  44.                         }else
  45.                         this.actualizarRegistro();
  46.                    
  47.                          bloquearCajas();      
  48.              }
  49.         else
  50.              {
  51.  
  52.                  try {
  53.                      PreparedStatement cst1 = con.getConnection().prepareStatement("{call BUSCAR_REGISTRO(?)}");
  54.                     cst1 .setString(1, idempleado);
  55.                     r=cst1 .executeQuery();
  56.  
  57.                  if(r.next()){
  58.                      
  59.                      
  60.            
  61.                     JOptionPane.showMessageDialog(this,"Usuario Encontrado EN CONSULTA SQL!!","Aviso",JOptionPane.INFORMATION_MESSAGE);
  62.                     this.RCEDULA_EMPLEADO.setText(r.getString(1));
  63.                     this.RNOM_EMPLEADO.setText(r.getString(2));
  64.                     this.RAPE_EMPLEADO.setText(r.getString(3));
  65.                     this.RNOM_EMPLEADOR.setText(r.getString(4));
  66.                     this.RAPE_EMPLEADOR.setText(r.getString(5));
  67. ////                    this.RFECHA_INGRESO.setText(r.getString(6));
  68. ////                    this.RHORA_INGRESO.setText(r.getString(7));
  69. ////                    this.RHORA_SALIDA.setText(r.getString(8));
  70.                     this.RNOM_CONSECIONARIO.setText(r.getString(6));
  71.                     this.RACTIVIDAD.setText(r.getString(7));
  72.                     this.RMESA_SERVI.setText(r.getString(8));
  73.                    
  74.                     //CODIGO PARA GENERAR LA FECHA Y HORAS DE INGRESO Y SALIDA
  75.                     Calendar cal = Calendar.getInstance();
  76.                     String hora = cal.get(cal.HOUR)+":"+ cal.get(cal.MINUTE)+":"+ cal.get(cal.SECOND);
  77.                     String fecha = cal.get(cal.DAY_OF_MONTH)+"/"+ cal.get(cal.MONTH)+"/"+ cal.get(cal.YEAR);
  78.                
  79.                         if(this.RFECHA_INGRESO.getText().equals("")&&(this.RHORA_INGRESO.getText().equals(""))){
  80.                         this.RFECHA_INGRESO.setText(fecha.toString());
  81.                         this.RHORA_INGRESO.setText(hora);
  82.                         this.RBTNMODIFICAR_SALIDA.setEnabled(false);
  83.                        
  84.                         }
  85. //                        else{
  86. ////                        
  87. //                        }
  88.                         bloquearCajas();
  89.                  }
  90.                  } catch (Exception e) {
  91.                  }
  92.                     }
  93.         } catch (Exception e) {
  94.         }
  95.        
  96.     }

Última edición por medinabao; 10/05/2015 a las 23:20