recuperar salida del SP en ASP

19/05/2004 - 11:05 por Jomaweb | Informe spam
Hola a todos:

Simplificando mucho, este de abajo es mi procedimiento almacenado.
Se supone que lo ejecuto desde una página ASP con la orden siguiente:

set rs=con.execute(pa_eliminarcontrato 123)

Pero no logro que me devuelva el mensaje que yo he definido mediante:

mensaje=rs.fields(0)

El caso es que no quiero definirlo como parámetro de salida ni liarme
con el tema de definir parametros en el codigo ASP.

me dice que el campo no existe en la selección.

¿cómo lo recupero? ¿y si quiero recuperar los dos(mensaje y
codigoresulado)?



CREATE PROCEDURE pa_eliminacontrato @CONTRATO integer as

DECLARE @ROW INTEGER
DECLARE @MENSAJE VARCHAR(100)
DECLARE @CODIGORESULTADO INTEGER


SELECT @ROW=COUNT(*) FROM contratos WHERE CODIGO_CONTRATO=@CONTRATO


IF (@ROW=0)

SET @MENSAJE='NO EXISTEN CONTRATOS CON DICHO NUMERO'
SET @CODIGORESULTADO=1

ELSECODIGO_CONTRATOSOCIO=@SOCIO

SET @MENSAJE= 'SE ELIMINARON LOS DATOS DEL SOCIO' + @CONTRATO
SET @CODIGORESULTADO=0

select @mensaje,@codigoresultado
 

Leer las respuestas

#1 Carlos Sacristan
19/05/2004 - 12:05 | Informe spam
Entiendo que no quieras liarte, pero te recomiendo que lo que estás
haciendo lo revises para devolver esos textos como parámetros de salida: es
mucho más eficiente y no necesariamente más complicado. De hecho, en la
ayuda tienes ejemplos de cómo recoger parámetros de salida.

De todos modos, yo modificaría ese procedimiento:

**************************************************
CREATE PROCEDURE dbo.pa_eliminacontrato @CONTRATO INTEGER AS
DECLARE @MENSAJE VARCHAR(100)
DECLARE @CODIGORESULTADO INTEGER

IF EXISTS (SELECT 1 FROM contratos WHERE CODIGO_CONTRATO=@CONTRATO)
SELECT @MENSAJE= 'SE ELIMINARON LOS DATOS DEL SOCIO' + @CONTRATO,
@CODIGORESULTADO=0
ELSE
SELECT @MENSAJE='NO EXISTEN CONTRATOS CON DICHO NUMERO',
CODIGORESULTADO=1

SELECT @mensaje mensaje,@codigoresultado codigoresultado

**************************************************

Pero vamos, que yo lo que haría sería modificarlo para que fueran
parámetros de salida tanto @mensaje como @codigoresultado

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Jomaweb" escribió en el mensaje
news:uhvS#
Hola a todos:

Simplificando mucho, este de abajo es mi procedimiento almacenado.
Se supone que lo ejecuto desde una página ASP con la orden siguiente:

set rs=con.execute(pa_eliminarcontrato 123)

Pero no logro que me devuelva el mensaje que yo he definido mediante:

mensaje=rs.fields(0)

El caso es que no quiero definirlo como parámetro de salida ni liarme
con el tema de definir parametros en el codigo ASP.

me dice que el campo no existe en la selección.

¿cómo lo recupero? ¿y si quiero recuperar los dos(mensaje y
codigoresulado)?



CREATE PROCEDURE pa_eliminacontrato @CONTRATO integer as

DECLARE @ROW INTEGER
DECLARE @MENSAJE VARCHAR(100)
DECLARE @CODIGORESULTADO INTEGER


SELECT @ROW=COUNT(*) FROM contratos WHERE CODIGO_CONTRATO=@CONTRATO


IF (@ROW=0)

SET @MENSAJE='NO EXISTEN CONTRATOS CON DICHO NUMERO'
SET @CODIGORESULTADO=1

ELSECODIGO_CONTRATOSOCIO=@SOCIO

SET @MENSAJE= 'SE ELIMINARON LOS DATOS DEL SOCIO' + @CONTRATO
SET @CODIGORESULTADO=0

select @mensaje,@codigoresultado


Preguntas similares