Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Como recuperar errores acceso a datos?

Estas en el tema de Como recuperar errores acceso a datos? en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 01/11/2009, 08:20
 
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:16.