SQL Server - Ayuda, problemas para validar doble insercion

 
Vista:

Ayuda, problemas para validar doble insercion

Publicado por !!!!Misky (6 intervenciones) el 11/10/2007 23:55:26
Hola, tengo un codigo q no hice yo y debo modificar, la parte de la insercion la hace bien, pero cuando le agrego codigo para validar q no se dupliquen los datos, no funciona y me bota el mensaje del catch().El cod es:
***********************************java (jbuilder 9.0)******************
void btnGrabarR_actionPerformed(ActionEvent e) {
String sql,auditoria,verifica;
int lugar=1;
String registro = txtNumReg.getText();
String fecharec = txtFechaRecep.getText();//FECHA AUTO O NO!
String clasedoc = (String)(cmbClasedoc.getSelectedItem());
String tipodoc = (String)(cmbTipodoc.getSelectedItem());
String folios = txtFolios.getText();
String numdoc,institucion,dependencia,cargodep,generado,dirigidoA;
String observacion = txtObs.getText();
Vector datosV=new Vector();

int comodin;
try{
verifica = "select * from RECEPCION_DOCUMENTO where num_registro=?";
datosV = sqlp.buscar(verifica, registro, lugar);

if (datosV.get(0) != null) {
comodin = registro.compareTo(String.valueOf(datosV.get(0)));
if (comodin == 0) {
JOptionPane.showMessageDialog(this, "Numero de Expediente ya existe",
"ERROR", JOptionPane.ERROR_MESSAGE);
}
else {
sql = "insert into RECEPCION_DOCUMENTO(num_registro,clase_doc,fecha_recepcion,tipo_doc,nro_doc,nro_folios,observacion,nombre_institucion,cargo_dept,nombre_procedencia,dirigido_a,asunto,dependencia,archivado,salida,generadoSAIMT,fecha_limite) values('" +registro + "','" + clasedoc + "','" + fecharec + "','" + tipodoc + "','" + numdoc + "','" + folios + "','" + observacion + "','" + institucion + "','" + cargodep + "','" + nomproce + "','" + dirigidoA + "','" + asunto + "','" + dependencia + "','NO','NO','" + generado + "','" + flimite + "')";
sqlp.ejecuta(sql);
auditoria = "insert into AUDRECEP_DOC(num_registro,fecha_escrita,usuario,area,cargo,fecha_ingreso) values ('" + registro + "','" + fecharec + "','" + usuario + "','" + area + "','" + cargo + "','" + fecha + "')";
sqlp.ejecuta(auditoria);
JOptionPane.showMessageDialog(this, "Datos alacenados correctamente","OK", JOptionPane.PLAIN_MESSAGE);
//////////////////
}
}
}
catch(Exception ex){
JOptionPane.showMessageDialog(this,"Problemas en el formulario IURecepcion","ERROR",JOptionPane.ERROR_MESSAGE);
}
}//clase

*****************************************************************************
Nunca entra al else(), pero al if() si!!!.
La funcion buscar esta en otra clase y este es su codigo:
*********************************************************************************
static public Vector buscar(String sql,String buscar,int posicion){
Vector regs = new Vector();
try{
ConectarBD db = new ConectarBD();
Connection cn = db.getConnection();
if(cn == null){
regs = null;
}else{
PreparedStatement ps = cn.prepareStatement(sql);
ps.setString(posicion,buscar);
ResultSet rs = ps.executeQuery();
ResultSetMetaData rm = rs.getMetaData();
int numCols = rm.getColumnCount();
while(rs.next()){
for(int i = 0; i<numCols;i++){
regs.addElement(rs.getString(i+1));
}//fin for
}//fin while
rs.close(); ps.close(); cn.close();
//return regs;
}// fin else
}catch(SQLException e){
System.out.println("Error en la búsqueda (SQLException)");
regs = null;
}catch(Exception e){
System.out.println("Error en la búsqueda (Exception)");
regs = null;
}
return regs;
}//fin busqueda;
***********************************************************
la tabla RECEPCION_DOCUMENTO:

num_registro VARCHAR(30)
*************************************************************
ME REPORTA ESTE ERROR:
clase: java.awt.EventDispatchThread

error: java.lang.ArrayIndexOutOfBoundsException
**************************************************************
GRACIAS POR ANTICIPADO SI SE TOMAN EL TIEMPO DE RESPONDERME,
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