Manejo de errores Sql

06/10/2005 - 18:24 por Pablodegerli | Informe spam
Hola amigos
Estoy conectandome al Sql desde Vb con Ado y manejando los errores dentro de
los Sp
Al usuario le muestro un mensaje personalizado pero quiero capturar en un
Log los errores para facilitar el encontrarlos
Las operaciones son del tipo

Insert Into Ajuste(Motivo, Id_Cliente, Id_Tipo_Ajuste, Bultos, Pcb, Sentido,
Id_Producto, Id_UsuarioAlta)
values (@Motivo, @Id_Cliente, @Id_Tipo_Ajuste, @Bultos, @Pcb, @Sentido,
@Id_Producto, @Id_UsuarioAuditoria )
set @Err = @@error
if @Err <> 0
begin
rollback transaction
return @Err
end
set @Id_Ajuste = @@Identity

Quisiera que en caso de error salga por el return y desde el vb capturar no
solo el numero de error sino la descripcion detallada que veo al procesar en
el QA del tipo

Servidor: mensaje 515, nivel 16, estado 2, procedimiento SpAjuste_I, línea
77
No se puede insertar el valor NULL en la columna 'Sentido', tabla
'Desarrollo.dbo.Ajuste'. La columna no admite valores NULL. INSERT falla.

Dado que desde Vb solo puedo obtener el Return_Value que es 515
Puedo buscar el error obteniendo

Select Error, Description from Master.Dbo.SysMessages where Error = 515 and
msglangid = 3082
'No se puede insertar el valor NULL en la columna '%1!', tabla '%3!'. La
columna no admite valores NULL. %5! falla.'

Existe alguna forma de almacenar esa descripcion detallada

Como siempre, Gracias de antemano
 

Leer las respuestas

#1 Maxi
06/10/2005 - 18:27 | Informe spam
Hola, ea informacion detallada esta en la tabla de mensajes!! en sql2005 esl
control de errores es muy superior a esta version, aca deberias capturar el
numero y luego con ese numero mostrar un mensaje al usuario.

En www.sqlteam.com y www.sqlservercentral.com encontraras una infinidad de
ejemplos


Salu2
Maxi


"Pablodegerli" escribió en el mensaje
news:Oag$
Hola amigos
Estoy conectandome al Sql desde Vb con Ado y manejando los errores dentro
de
los Sp
Al usuario le muestro un mensaje personalizado pero quiero capturar en un
Log los errores para facilitar el encontrarlos
Las operaciones son del tipo

Insert Into Ajuste(Motivo, Id_Cliente, Id_Tipo_Ajuste, Bultos, Pcb,
Sentido,
Id_Producto, Id_UsuarioAlta)
values (@Motivo, @Id_Cliente, @Id_Tipo_Ajuste, @Bultos, @Pcb, @Sentido,
@Id_Producto, @Id_UsuarioAuditoria )
set @Err = @@error
if @Err <> 0
begin
rollback transaction
return @Err
end
set @Id_Ajuste = @@Identity

Quisiera que en caso de error salga por el return y desde el vb capturar
no
solo el numero de error sino la descripcion detallada que veo al procesar
en
el QA del tipo

Servidor: mensaje 515, nivel 16, estado 2, procedimiento SpAjuste_I, línea
77
No se puede insertar el valor NULL en la columna 'Sentido', tabla
'Desarrollo.dbo.Ajuste'. La columna no admite valores NULL. INSERT falla.

Dado que desde Vb solo puedo obtener el Return_Value que es 515
Puedo buscar el error obteniendo

Select Error, Description from Master.Dbo.SysMessages where Error = 515
and
msglangid = 3082
'No se puede insertar el valor NULL en la columna '%1!', tabla '%3!'. La
columna no admite valores NULL. %5! falla.'

Existe alguna forma de almacenar esa descripcion detallada

Como siempre, Gracias de antemano



Preguntas similares