Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/11/2009, 08:20
davisoski
 
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 2 meses
Puntos: 0
Como recuperar errores acceso a datos?

Buenas.

Me gustaria saber como puedo evitar los errores que me aparecen en la consola cuando por ejemplo realizo una inserción y se que estoy violando la clave primaria porque el registro ya esta insertado.

Como ejemplo:

Suponer que tengo una inserción para una tabla e intento insertar de nuevo la misma clave. En este caso obtengo algo así:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Infracción de la restricción PRIMARY KEY 'PK_Cuestionario_1'. No se puede insertar una clave duplicada en el objeto 'Cuestionario'.
at com.microsoft.jdbc.base.BaseExceptions.createExcep tion(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getExceptio n(Unknown Source)
at ..............

Lo que quiero es evitar esta traza en la consola (que aparecera en el servidor de aplicaciones tambien) y obtener dicho error de alguna manera para mostrar mis errores personalizados en la página indicando que tipo de error se ha producido y sugerencias para evitarlo.

Utilizo un código como este, pero puede servir cualquier otro de acceso a datos utilizando java.

try {
CallableStatement cstmt = conn
.prepareCall("{call sp_insercion_nuevo_cuestionario(?,?,?,?,?,?,?,?,?) }");
cstmt.registerOutParameter(1, java.sql.Types.BIGINT);
cstmt.setString(2, alojamiento);
cstmt.setString(3, anio);
cstmt.setString(4, mes);
cstmt.setDate(5, Date.valueOf("2009-01-02"));
cstmt.setDate(6, Date.valueOf("2009-01-03"));
cstmt.setDate(7, Date.valueOf("2009-01-04"));
cstmt.setInt(8, 1);
cstmt.setString(9, "Estas son las observaciones");

cstmt.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("e.getMessage(): " + e.getMessage());
}


No se si me he explicado.

Alguna sugerencia.
Gracias.