Problema al intentar capturar un error de un Proc.Almacenado

14/12/2003 - 09:34 por Gemma Ortuño | Informe spam
Hola grupo:

En SQL tengo un procedimiento almacenado similar a éste:

create proc GP_PruebaAplica
as
set nocount on

select articulo from Articulos where articulo = 'Ref01'
if @@ROWCOUNT = 0
raiserror('Error',16,1)

set nocount off

Desde mi programa utilizo una conexión ODBC para conectarme al servidor.
Cuando
ejecuto la llamada a este procedimiento almacenado mi rutina de captura de
errores
no lo realiza correctamente y el error que me devuelve es algo así:
"Error de Conectividad. No se puede obtener información específica del
error. Probablemente el
controlador no tiene recursos suficientes"
Entiendo que ésto ocurre porque el Proc. Almacenado intenta devolver el
conjunto de resultados del "select" y además el
resultado del "raiserror" cuando corresponde.
¿ Se puede evitar ésto para que el Proc. Almacenado sólo nos devuelva el
Raiserror cuando corresponda ?

Preguntas similare

Leer las respuestas

#1 Eladio Rincón
15/12/2003 - 14:54 | Informe spam
Hola,

no creo que sea porque el procedimiento devuelve registros porque si los
devolviera no haría el raiseerror;

¿has provado a hacerlo enviando sólamente el error y te ha llegado la
información del error al cliente?

Saludos,
Eladio Rincón.

"Gemma Ortuño" escribió en el mensaje
news:
Hola grupo:

En SQL tengo un procedimiento almacenado similar a éste:

create proc GP_PruebaAplica
as
set nocount on

select articulo from Articulos where articulo = 'Ref01'
if @@ROWCOUNT = 0
raiserror('Error',16,1)

set nocount off

Desde mi programa utilizo una conexión ODBC para conectarme al servidor.
Cuando
ejecuto la llamada a este procedimiento almacenado mi rutina de captura de
errores
no lo realiza correctamente y el error que me devuelve es algo así:
"Error de Conectividad. No se puede obtener información específica del
error. Probablemente el
controlador no tiene recursos suficientes"
Entiendo que ésto ocurre porque el Proc. Almacenado intenta devolver el
conjunto de resultados del "select" y además el
resultado del "raiserror" cuando corresponde.
¿ Se puede evitar ésto para que el Proc. Almacenado sólo nos devuelva el
Raiserror cuando corresponda ?


Respuesta Responder a este mensaje
#2 Gemma Ortuño
15/12/2003 - 15:09 | Informe spam
Sí, con el Raiserror sólo sí que funciona.


"Eladio Rincón" escribió en el mensaje
news:%
Hola,

no creo que sea porque el procedimiento devuelve registros porque si los
devolviera no haría el raiseerror;

¿has provado a hacerlo enviando sólamente el error y te ha llegado la
información del error al cliente?

Saludos,
Eladio Rincón.

"Gemma Ortuño" escribió en el mensaje
news:
> Hola grupo:
>
> En SQL tengo un procedimiento almacenado similar a éste:
>
> create proc GP_PruebaAplica
> as
> set nocount on
>
> select articulo from Articulos where articulo = 'Ref01'
> if @@ROWCOUNT = 0
> raiserror('Error',16,1)
>
> set nocount off
>
> Desde mi programa utilizo una conexión ODBC para conectarme al servidor.
> Cuando
> ejecuto la llamada a este procedimiento almacenado mi rutina de captura


de
> errores
> no lo realiza correctamente y el error que me devuelve es algo así:
> "Error de Conectividad. No se puede obtener información específica del
> error. Probablemente el
> controlador no tiene recursos suficientes"
> Entiendo que ésto ocurre porque el Proc. Almacenado intenta devolver el
> conjunto de resultados del "select" y además el
> resultado del "raiserror" cuando corresponde.
> ¿ Se puede evitar ésto para que el Proc. Almacenado sólo nos devuelva el
> Raiserror cuando corresponda ?
>
>


Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
15/12/2003 - 15:17 | Informe spam
con el permiso de Eladio no? porque no probas esto:


create proc GP_PruebaAplica
as
set nocount on

select articulo from Articulos where articulo = 'Ref01'
if @@ROWCOUNT = 0
begin
raiserror('Error',16,1)
end
set nocount off

y esto:


create proc GP_PruebaAplica
as
set nocount on

select articulo from Articulos where articulo = 'Ref01'
if @@ROWCOUNT = 0
begin
print 'error'
end
set nocount off

y me comentas que pasa si?

gracias

Maximiliano Damian Accotto
"Gemma Ortuño" escribió en el mensaje
news:
Sí, con el Raiserror sólo sí que funciona.


"Eladio Rincón" escribió en el mensaje
news:%
> Hola,
>
> no creo que sea porque el procedimiento devuelve registros porque si los
> devolviera no haría el raiseerror;
>
> ¿has provado a hacerlo enviando sólamente el error y te ha llegado la
> información del error al cliente?
>
> Saludos,
> Eladio Rincón.
>
> "Gemma Ortuño" escribió en el mensaje
> news:
> > Hola grupo:
> >
> > En SQL tengo un procedimiento almacenado similar a éste:
> >
> > create proc GP_PruebaAplica
> > as
> > set nocount on
> >
> > select articulo from Articulos where articulo = 'Ref01'
> > if @@ROWCOUNT = 0
> > raiserror('Error',16,1)
> >
> > set nocount off
> >
> > Desde mi programa utilizo una conexión ODBC para conectarme al


servidor.
> > Cuando
> > ejecuto la llamada a este procedimiento almacenado mi rutina de


captura
de
> > errores
> > no lo realiza correctamente y el error que me devuelve es algo así:
> > "Error de Conectividad. No se puede obtener información específica del
> > error. Probablemente el
> > controlador no tiene recursos suficientes"
> > Entiendo que ésto ocurre porque el Proc. Almacenado intenta devolver


el
> > conjunto de resultados del "select" y además el
> > resultado del "raiserror" cuando corresponde.
> > ¿ Se puede evitar ésto para que el Proc. Almacenado sólo nos devuelva


el
> > Raiserror cuando corresponda ?
> >
> >
>
>


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