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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Javier Rojas Goñi/ Parse Software
06/10/2005 - 18:32 | Informe spam
usa ADO Erro Collection,

strError = ""
Set errorCollection = adoConnection.Errors
For Each errLoop In errorCollection
With errLoop
strError = "Error #" & iCounter & vbCrLf
strError = strError & " ADO Error #" & .Number & vbCrLf
strError = strError & " Description " & .Description & vbCrLf
strError = strError & " Source " & .Source & vbCrLf
Debug.Print strError
iCounter = iCounter + 1
End With
Next

SAludos

Javier Rojas Goñi
PARSE Software Chile
-

56-32-666366


-

"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



Respuesta Responder a este mensaje
#3 Pablodegerli
06/10/2005 - 21:01 | Informe spam
Justo lo que necesitaba
con cnn.Errors.Count > 0 detecto que dio error
Muchas gracias

"Javier Rojas Goñi/ Parse Software" escribió en el mensaje
news:%
usa ADO Erro Collection,

strError = ""
Set errorCollection = adoConnection.Errors
For Each errLoop In errorCollection
With errLoop
strError = "Error #" & iCounter & vbCrLf
strError = strError & " ADO Error #" & .Number & vbCrLf
strError = strError & " Description " & .Description & vbCrLf
strError = strError & " Source " & .Source & vbCrLf
Debug.Print strError
iCounter = iCounter + 1
End With
Next

SAludos

Javier Rojas Goñi
PARSE Software Chile
-

56-32-666366


-

"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
>
>
>


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