Ayuda! Pasar errores a la aplicación
Hola! Tengo un problema con la gestión de errores.
¡ Ayuda por favor!
Tengo una aplicación web ASP VBScript que interactúa con una base de datos SQL Server. Estoy intentando manejar los posibles errores cuando se hacen operaciones en la base de datos, como insertar, modificar, borrar, etc, .. Estas operaciones las llevo a cabo mediante procedimientos almacenados en SQL Server.
Lo que quiero hacer es capturar el posible error en el procedimiento almacenado, para después pasarlo a la aplicación web y decidir qué hacer. Esto lo hago de la siguiente forma en el sp:
Declare @Error_num int
Declare @Severity smallint
INSERT INTO Inscripciones_en_ofertas (Oferta_num, Demandante_num, Data, Motivos_interes)
VALUES (@Oferta_num, @Demandante_num, @Data, @Motivos_interes)
SELECT @Error_num = @@ERROR
IF (@Error_num<>0)
SELECT @severity = severity FROM sysmessages
WHERE @Error_num = error
SELECT @severity AS error_severity
END
** Selecciono @severity porque es lo que determina si la operación se ha llevado a cabo correctamente o no, en caso que me devuelva un numero entre 11 y 16 saldrá un mensaje en el web que diga que el usuario ha introducido mal los datos, si devuelve entre 17 y 19 que salga un mensaje que diga que por causas ajenas al usuario la operación ha fallado. ¿Todo esto correcto? Me han dicho que haga servir el número de error que da @@ERROR, pero para empezar estos números no son únicos, hay de duplicados y además este número por si sólo no determina si la acción se llevó a cabo o no, esto lo determina el nivel de severidad ?severity? ¿no es así?
** ¿Está bien escrito el procedimiento almacenado? Cuando lo ejecuto desde la aplicación NO ME APARECE LA VARIABLE @severity, pero sí aparece cuando lo ejecuto en el Analizador de Consultas.
** A mí me interesaría que todos los errores que fuera produciendo SQL se registraran en algún sitio para yo después revisarlos e ir corrigiendo. ¿Es posible esto?
Gracias,
Cesar
¡ Ayuda por favor!
Tengo una aplicación web ASP VBScript que interactúa con una base de datos SQL Server. Estoy intentando manejar los posibles errores cuando se hacen operaciones en la base de datos, como insertar, modificar, borrar, etc, .. Estas operaciones las llevo a cabo mediante procedimientos almacenados en SQL Server.
Lo que quiero hacer es capturar el posible error en el procedimiento almacenado, para después pasarlo a la aplicación web y decidir qué hacer. Esto lo hago de la siguiente forma en el sp:
Declare @Error_num int
Declare @Severity smallint
INSERT INTO Inscripciones_en_ofertas (Oferta_num, Demandante_num, Data, Motivos_interes)
VALUES (@Oferta_num, @Demandante_num, @Data, @Motivos_interes)
SELECT @Error_num = @@ERROR
IF (@Error_num<>0)
SELECT @severity = severity FROM sysmessages
WHERE @Error_num = error
SELECT @severity AS error_severity
END
** Selecciono @severity porque es lo que determina si la operación se ha llevado a cabo correctamente o no, en caso que me devuelva un numero entre 11 y 16 saldrá un mensaje en el web que diga que el usuario ha introducido mal los datos, si devuelve entre 17 y 19 que salga un mensaje que diga que por causas ajenas al usuario la operación ha fallado. ¿Todo esto correcto? Me han dicho que haga servir el número de error que da @@ERROR, pero para empezar estos números no son únicos, hay de duplicados y además este número por si sólo no determina si la acción se llevó a cabo o no, esto lo determina el nivel de severidad ?severity? ¿no es así?
** ¿Está bien escrito el procedimiento almacenado? Cuando lo ejecuto desde la aplicación NO ME APARECE LA VARIABLE @severity, pero sí aparece cuando lo ejecuto en el Analizador de Consultas.
** A mí me interesaría que todos los errores que fuera produciendo SQL se registraran en algún sitio para yo después revisarlos e ir corrigiendo. ¿Es posible esto?
Gracias,
Cesar
2 respuestas
Respuesta de retsam
1
Respuesta de mrivasr
-1