Controlar errores en Stored Procs.

01/02/2007 - 13:48 por Juan Martínez | Informe spam
Hola: Estoy atacando un SP de SQL Server 2000 desde una aplicación VB6 en el
que ejecuto sentencias como:
DECLARE @sql nvarchar(4000)
set @sql='UPDATE tabla SET campo1='ww''
EXEC sp_executesql @sql

Es algo más complicado, con parámetros de entrada que componen @sql para los
nombres de las tablas a actualizar, etc. La cuestión es que si yo hago por
ejemplo:

set @sql='UPDATE error en la sintaxis de la sentencia SQL'
EXEC sp_executesql @sql

No se como detectar el error bien desde el objecto connection de ADO o bien
desde el objeto parameter, que tiene unas 90 properties pero ninguna hace
referencia a posibles errores del SP (o eso creo)

¿Donde se queda este error? ¿Como detectarlo para habilitar su
correspondiente control?


Muchas gracias por todo, otra vez

Preguntas similare

Leer las respuestas

#1 Maxi
01/02/2007 - 14:23 | Informe spam
Hola, el error lo debes controlar en el SP e informar a la aplicacion de
ello

por ej:

if @@error <> 0
begin
return 99 -- cualquier valor distinto de 0 indica error
end


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Juan Martínez" escribió en el
mensaje news:
Hola: Estoy atacando un SP de SQL Server 2000 desde una aplicación VB6 en
el
que ejecuto sentencias como:
DECLARE @sql nvarchar(4000)
set @sql='UPDATE tabla SET campo1='ww''
EXEC sp_executesql @sql

Es algo más complicado, con parámetros de entrada que componen @sql para
los
nombres de las tablas a actualizar, etc. La cuestión es que si yo hago por
ejemplo:

set @sql='UPDATE error en la sintaxis de la sentencia SQL'
EXEC sp_executesql @sql

No se como detectar el error bien desde el objecto connection de ADO o
bien
desde el objeto parameter, que tiene unas 90 properties pero ninguna hace
referencia a posibles errores del SP (o eso creo)

¿Donde se queda este error? ¿Como detectarlo para habilitar su
correspondiente control?


Muchas gracias por todo, otra vez

Respuesta Responder a este mensaje
#2 jcac
01/02/2007 - 14:45 | Informe spam
Hola Juan

Tienes el dentro del objeto ADO una coleccion que se llama Errors, alli te
pasara todos los errores que encuntre al ejecutar una sentencia SQL a traves
de dicha coneccion. espero te sirva.

Saludos


"Juan Martínez" escribió en el
mensaje news:
Hola: Estoy atacando un SP de SQL Server 2000 desde una aplicación VB6 en
el
que ejecuto sentencias como:
DECLARE @sql nvarchar(4000)
set @sql='UPDATE tabla SET campo1='ww''
EXEC sp_executesql @sql

Es algo más complicado, con parámetros de entrada que componen @sql para
los
nombres de las tablas a actualizar, etc. La cuestión es que si yo hago por
ejemplo:

set @sql='UPDATE error en la sintaxis de la sentencia SQL'
EXEC sp_executesql @sql

No se como detectar el error bien desde el objecto connection de ADO o
bien
desde el objeto parameter, que tiene unas 90 properties pero ninguna hace
referencia a posibles errores del SP (o eso creo)

¿Donde se queda este error? ¿Como detectarlo para habilitar su
correspondiente control?


Muchas gracias por todo, otra vez

Respuesta Responder a este mensaje
#3 Juan Martínez
01/02/2007 - 15:16 | Informe spam
Hola jcac. Tengo una colección errors que está dentro del objeto connection
de ADO, pero no me devuielve errores. erros.count=0

hay algún otro objeto error dentro de ADO. donde esta?


Mil gracias

"jcac" wrote:

Hola Juan

Tienes el dentro del objeto ADO una coleccion que se llama Errors, alli te
pasara todos los errores que encuntre al ejecutar una sentencia SQL a traves
de dicha coneccion. espero te sirva.

Saludos


"Juan Martínez" escribió en el
mensaje news:
> Hola: Estoy atacando un SP de SQL Server 2000 desde una aplicación VB6 en
> el
> que ejecuto sentencias como:
> DECLARE @sql nvarchar(4000)
> set @sql='UPDATE tabla SET campo1='ww''
> EXEC sp_executesql @sql
>
> Es algo más complicado, con parámetros de entrada que componen @sql para
> los
> nombres de las tablas a actualizar, etc. La cuestión es que si yo hago por
> ejemplo:
>
> set @sql='UPDATE error en la sintaxis de la sentencia SQL'
> EXEC sp_executesql @sql
>
> No se como detectar el error bien desde el objecto connection de ADO o
> bien
> desde el objeto parameter, que tiene unas 90 properties pero ninguna hace
> referencia a posibles errores del SP (o eso creo)
>
> ¿Donde se queda este error? ¿Como detectarlo para habilitar su
> correspondiente control?
>
>
> Muchas gracias por todo, otra vez
>



Respuesta Responder a este mensaje
#4 Juan Martínez
01/02/2007 - 17:10 | Informe spam
Hola maxi: Estoy intentando ejecutar tu consejo así:

if @@error<>0
begin
DECLARE @ERR VARCHAR(8000)
SELECT @ERR = TEXT FROM SYS.MESSAGES
return @err
end

pero al haber invocado al SP desde un objeto command, no se como manejar el
error. ¿donde se encuentra?


Muchas gracias

"Maxi" wrote:

Hola, el error lo debes controlar en el SP e informar a la aplicacion de
ello

por ej:

if @@error <> 0
begin
return 99 -- cualquier valor distinto de 0 indica error
end


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Juan Martínez" escribió en el
mensaje news:
> Hola: Estoy atacando un SP de SQL Server 2000 desde una aplicación VB6 en
> el
> que ejecuto sentencias como:
> DECLARE @sql nvarchar(4000)
> set @sql='UPDATE tabla SET campo1='ww''
> EXEC sp_executesql @sql
>
> Es algo más complicado, con parámetros de entrada que componen @sql para
> los
> nombres de las tablas a actualizar, etc. La cuestión es que si yo hago por
> ejemplo:
>
> set @sql='UPDATE error en la sintaxis de la sentencia SQL'
> EXEC sp_executesql @sql
>
> No se como detectar el error bien desde el objecto connection de ADO o
> bien
> desde el objeto parameter, que tiene unas 90 properties pero ninguna hace
> referencia a posibles errores del SP (o eso creo)
>
> ¿Donde se queda este error? ¿Como detectarlo para habilitar su
> correspondiente control?
>
>
> Muchas gracias por todo, otra vez
>



Respuesta Responder a este mensaje
#5 Maxi
01/02/2007 - 18:01 | Informe spam
Hola, ahh lo estas haciendo desde tu programa? lo que yo te decia era
controlarlo desde el Store Procedure


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Juan Martínez" escribió en el
mensaje news:
Hola maxi: Estoy intentando ejecutar tu consejo así:

if @@error<>0
begin
DECLARE @ERR VARCHAR(8000)
SELECT @ERR = TEXT FROM SYS.MESSAGES
return @err
end

pero al haber invocado al SP desde un objeto command, no se como manejar
el
error. ¿donde se encuentra?


Muchas gracias

"Maxi" wrote:

Hola, el error lo debes controlar en el SP e informar a la aplicacion de
ello

por ej:

if @@error <> 0
begin
return 99 -- cualquier valor distinto de 0 indica error
end


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Juan Martínez" escribió en el
mensaje news:
> Hola: Estoy atacando un SP de SQL Server 2000 desde una aplicación VB6
> en
> el
> que ejecuto sentencias como:
> DECLARE @sql nvarchar(4000)
> set @sql='UPDATE tabla SET campo1='ww''
> EXEC sp_executesql @sql
>
> Es algo más complicado, con parámetros de entrada que componen @sql
> para
> los
> nombres de las tablas a actualizar, etc. La cuestión es que si yo hago
> por
> ejemplo:
>
> set @sql='UPDATE error en la sintaxis de la sentencia SQL'
> EXEC sp_executesql @sql
>
> No se como detectar el error bien desde el objecto connection de ADO o
> bien
> desde el objeto parameter, que tiene unas 90 properties pero ninguna
> hace
> referencia a posibles errores del SP (o eso creo)
>
> ¿Donde se queda este error? ¿Como detectarlo para habilitar su
> correspondiente control?
>
>
> Muchas gracias por todo, otra vez
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida