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

Definir Mensajes de error

Estas en el tema de Definir Mensajes de error en el foro de SQL Server en Foros del Web. hola queria saber si hay alguna forma, de que al insertar un registro en una tabla, y no se cumpla con algun constraint Definido en ...
  #1 (permalink)  
Antiguo 23/10/2010, 13:27
 
Fecha de Ingreso: octubre-2010
Ubicación: Cordoba, Argentina
Mensajes: 40
Antigüedad: 13 años, 6 meses
Puntos: 2
Información Definir Mensajes de error

hola queria saber si hay alguna forma, de que al insertar un registro en una tabla, y no se cumpla con algun constraint Definido en la misma, pueda mostrarme un error personalizado
Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 25/10/2010, 12:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Definir Mensajes de error

Pues es cuestion de programarlo, algo como:

Código SQL:
Ver original
  1. INSERT............
  2. IF @@ROWCOUNT = 0
  3.  BEGIN
  4.    SELECT 'Error, No se pudo insertar el registro'
  5.    ROLLBACK TRAN
  6.  END
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 25/10/2010, 12:27
 
Fecha de Ingreso: octubre-2010
Ubicación: Cordoba, Argentina
Mensajes: 40
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Definir Mensajes de error

iislas, tuve que haber explayado un poco mas. Yo inserto registros en una tabla desde mi aplicacion (c#, linq2sql). En el momento que hago un SubmitChanges, para insertar el registro en el sql, me devuelve un error el sql, porque el registro a insertar no cumple el Constraint de la tabla. yo quiero poder devolver ese error al usuario.
Espero haber sido claro. Saludos
  #4 (permalink)  
Antiguo 25/10/2010, 14:10
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Definir Mensajes de error

volvemos por el camino:

Los INSERT, UPDATE y DELETE (agregaria los SELECT), cumpliendo con las "buenas practicas" de un desarrollo, no deben ser enviadas desde el FRONT (capa cliente), deberan ser procesadas por PROCEDIMIENTOS ALMACENADOS.

¿Porque?

Se deben cumplir con las transacciones (BEGIN TRAN, COMMIT TRAN, ROLLBACK TRAN), ademas de realizar las verficaciones necesarias.

Por tanto, aunque exista un CONSTRAINT que dice que un empleado no puede recibir mas de un 50% de aumento salarial, el codigo en el store procedure, debe validarlo.

Si lo que tu pretendes, es evitarte el trabajo de VERIFICACION, y atrapar todos los constraints (en el supuesto que se pueda), deberas cambiar el TEXTO del error.

¿Para que edicion-version de SQL Server estas haciendo dicha programacion?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 25/10/2010, 15:11
 
Fecha de Ingreso: octubre-2010
Ubicación: Cordoba, Argentina
Mensajes: 40
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Definir Mensajes de error

Cita:
Iniciado por iislas Ver Mensaje
volvemos por el camino:

Los INSERT, UPDATE y DELETE (agregaria los SELECT), cumpliendo con las "buenas practicas" de un desarrollo, no deben ser enviadas desde el FRONT (capa cliente), deberan ser procesadas por PROCEDIMIENTOS ALMACENADOS.

¿Porque?

Se deben cumplir con las transacciones (BEGIN TRAN, COMMIT TRAN, ROLLBACK TRAN), ademas de realizar las verficaciones necesarias.

Por tanto, aunque exista un CONSTRAINT que dice que un empleado no puede recibir mas de un 50% de aumento salarial, el codigo en el store procedure, debe validarlo.

Si lo que tu pretendes, es evitarte el trabajo de VERIFICACION, y atrapar todos los constraints (en el supuesto que se pueda), deberas cambiar el TEXTO del error.

¿Para que edicion-version de SQL Server estas haciendo dicha programacion?
estoy trabajando con SQL 2008.
Pero no uso un Stored para insertar los registros, porque estoy usando Linq. Tengo una funcion Valid, pero demora mucho en chequear estas cosas, porque tengo que chequear con datos de otras tablas. Por eso queria ver si de esta manera podia llegar a lograr una mejor performance...
  #6 (permalink)  
Antiguo 26/10/2010, 15:14
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Definir Mensajes de error

¿Mejor performance (tiempo de respuesta)?, sabes tu o has leido sobre los PLANES DE EJECUCION ?????, para que te des cuenta que cuando envias T-SQL hacia tu motor, los planes de ejecucion son con menor PERFORMANCE
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 27/10/2010, 09:08
 
Fecha de Ingreso: octubre-2010
Ubicación: Cordoba, Argentina
Mensajes: 40
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Definir Mensajes de error

iislas, te agradezco pero ya resolvi mi problema. Pero lo que me parece que no entendiste, es que estoy usando Linq to Sql. No se si sabes que es y como trabaja?
saludos y gracias igualmente
  #8 (permalink)  
Antiguo 27/10/2010, 11:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Definir Mensajes de error

Si, ese es el problema, que no sabes que estas en un foro de SQL SERVER, saludos.
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 27/10/2010, 12:18
 
Fecha de Ingreso: octubre-2010
Ubicación: Cordoba, Argentina
Mensajes: 40
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Definir Mensajes de error

pero... si mi duda es con sql, Simplemente definir el error que tira el sql, al chequear un constraint. despues te conte lo de mi aplicacion porque me empezaste a pedir mas datos...
  #10 (permalink)  
Antiguo 27/10/2010, 12:30
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Definir Mensajes de error

Como lo haga tu aplicacion (Linq to Sql), no es problema del motor en cuestion, en este caso, SQL Server, yo solo te comento LAS BUENAS PRACTICAS para el desarrollo de aplicativos de 3 capas.
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 28/10/2010, 07:04
 
Fecha de Ingreso: octubre-2010
Ubicación: Cordoba, Argentina
Mensajes: 40
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Definir Mensajes de error

sos groso iislas
  #12 (permalink)  
Antiguo 31/10/2010, 17:41
 
Fecha de Ingreso: octubre-2010
Ubicación: Baja Baviera, Alemania
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Definir Mensajes de error

Para mostrar los mensajes tanto a nivel VB como a nivel Transact-SQL lo que mas uso es "Raise" y para pruebas pues "Output" tb

Etiquetas: constraints, mensajes
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 16:15.