Mensajes de error de integridad mas amigables

05/08/2006 - 15:12 por Tito | Informe spam
Hola, hay alguna manera de por ejemplo el mensaje de que se dejo en blanco
un campo que es una clave foranea pueda uno personalizarlo (o ponerlo en
espanol) para que el usuario lo entienda en la aplicacion. Si si ya se que
los usuarios no leen ni los mensajes en espanol, pero por lo menos uno se
cubriria para decirles: "pero ... no lo leiste? ahi te lo dice claro...:)"

Preguntas similare

Leer las respuestas

#1 Maxi
05/08/2006 - 17:09 | Informe spam
Tito, en sql2000 no vas a poder hacer esto, en sql2005 con el uso de Try
Cath si.
Te paso un ejemplo de sql2005:


IF OBJECT_ID('LOG_ERRORES') IS NOT NULL
DROP TABLE LOG_ERRORES
GO

CREATE TABLE LOG_ERRORES (ID INT IDENTITY,NUMERO BIGINT,MENSAJE
VARCHAR(1000) NOT NULL)
GO

SET NOCOUNT ON

BEGIN TRY
INSERT INTO EMPLEADOS VALUES (2,'JUAN','20060101',3)
END TRY

BEGIN CATCH
BEGIN TRY
EL MENSAJE, CON LO CUAL DA ERROR

INSERT INTO LOG_ERRORES (NUMERO,MENSAJE) VALUES
(ERROR_NUMBER(),NULL)
END TRY

BEGIN CATCH
PRINT 'NO SE PUDO GUARDAR EN LA TABLA LOG_ERRORES'
END CATCH

END CATCH


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
INETA Speaker
www.sqlgurus.org

MSN:

"Tito" escribió en el mensaje
news:
Hola, hay alguna manera de por ejemplo el mensaje de que se dejo en blanco
un campo que es una clave foranea pueda uno personalizarlo (o ponerlo en
espanol) para que el usuario lo entienda en la aplicacion. Si si ya se
que los usuarios no leen ni los mensajes en espanol, pero por lo menos uno
se cubriria para decirles: "pero ... no lo leiste? ahi te lo dice
claro...:)"




Respuesta Responder a este mensaje
#2 Pedro Echavarria
05/08/2006 - 18:54 | Informe spam
Y al menos en la version 2000 se podria detectar por lo menos los tipos de
errores, es decir, saber cuando la causa fue una clave foranea, un valor
null, etc. etc. ?


"Maxi" wrote in message
news:
Tito, en sql2000 no vas a poder hacer esto, en sql2005 con el uso de Try
Cath si.
Te paso un ejemplo de sql2005:


IF OBJECT_ID('LOG_ERRORES') IS NOT NULL
DROP TABLE LOG_ERRORES
GO

CREATE TABLE LOG_ERRORES (ID INT IDENTITY,NUMERO BIGINT,MENSAJE
VARCHAR(1000) NOT NULL)
GO

SET NOCOUNT ON

BEGIN TRY
INSERT INTO EMPLEADOS VALUES (2,'JUAN','20060101',3)
END TRY

BEGIN CATCH
BEGIN TRY
EL MENSAJE, CON LO CUAL DA ERROR

INSERT INTO LOG_ERRORES (NUMERO,MENSAJE) VALUES
(ERROR_NUMBER(),NULL)
END TRY

BEGIN CATCH
PRINT 'NO SE PUDO GUARDAR EN LA TABLA LOG_ERRORES'
END CATCH

END CATCH


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
INETA Speaker
www.sqlgurus.org

MSN:

"Tito" escribió en el mensaje
news:
Hola, hay alguna manera de por ejemplo el mensaje de que se dejo en
blanco un campo que es una clave foranea pueda uno personalizarlo (o
ponerlo en espanol) para que el usuario lo entienda en la aplicacion. Si
si ya se que los usuarios no leen ni los mensajes en espanol, pero por lo
menos uno se cubriria para decirles: "pero ... no lo leiste? ahi te lo
dice claro...:)"








Respuesta Responder a este mensaje
#3 Maxi
05/08/2006 - 21:57 | Informe spam
No, en 2000 enmvia un mensaje y deberias luego manejarlo en el cliente,
siempre vas a tener el numero de error, entonces si estas en una aplicacion
y ejecutas un SP y ese SP dio un error podes con el numero tener una tabla
de errores propios de la aplicacion y mostrar otro mensaje al usuario


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
INETA Speaker
www.sqlgurus.org

MSN:

"Pedro Echavarria" escribió en el mensaje
news:eYHwY$
Y al menos en la version 2000 se podria detectar por lo menos los tipos de
errores, es decir, saber cuando la causa fue una clave foranea, un valor
null, etc. etc. ?


"Maxi" wrote in message
news:
Tito, en sql2000 no vas a poder hacer esto, en sql2005 con el uso de Try
Cath si.
Te paso un ejemplo de sql2005:


IF OBJECT_ID('LOG_ERRORES') IS NOT NULL
DROP TABLE LOG_ERRORES
GO

CREATE TABLE LOG_ERRORES (ID INT IDENTITY,NUMERO BIGINT,MENSAJE
VARCHAR(1000) NOT NULL)
GO

SET NOCOUNT ON

BEGIN TRY
INSERT INTO EMPLEADOS VALUES (2,'JUAN','20060101',3)
END TRY

BEGIN CATCH
BEGIN TRY
EL MENSAJE, CON LO CUAL DA ERROR

INSERT INTO LOG_ERRORES (NUMERO,MENSAJE) VALUES
(ERROR_NUMBER(),NULL)
END TRY

BEGIN CATCH
PRINT 'NO SE PUDO GUARDAR EN LA TABLA LOG_ERRORES'
END CATCH

END CATCH


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
INETA Speaker
www.sqlgurus.org

MSN:

"Tito" escribió en el mensaje
news:
Hola, hay alguna manera de por ejemplo el mensaje de que se dejo en
blanco un campo que es una clave foranea pueda uno personalizarlo (o
ponerlo en espanol) para que el usuario lo entienda en la aplicacion.
Si si ya se que los usuarios no leen ni los mensajes en espanol, pero
por lo menos uno se cubriria para decirles: "pero ... no lo leiste? ahi
te lo dice claro...:)"












email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida