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

Preguntas similare

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#
Mostrar la cita
#2 Jomaweb
19/05/2004 - 12:22 | Informe spam
No, si eso ya lo sé. Ya sé que es más eficiente pero es un procedimiento que
solo se va a ejecutar una vez a la semana como mucho.

El problema es ¿cómo recuperar desde el ASP el recordset doble que me
devuelve el SP?

Eso es lo que no pillo

Gracias

Mostrar la cita
es
Mostrar la cita
#3 Tinoco
19/05/2004 - 14:12 | Informe spam
Hola.

No se si este sea tu problema, pero una recomendación es
utilizar [Set nocount on], al inicio del SP para que no te
afecte el recordset de retorno.

Espero te sirva.

Hermilson T.
MCDBA, MCSD
Colombia

Mostrar la cita
almacenado.
Mostrar la cita
orden siguiente:
Mostrar la cita
definido mediante:
Mostrar la cita
salida ni liarme
Mostrar la cita
(mensaje y
Mostrar la cita
CODIGO_CONTRATO=@CONTRATO
Mostrar la cita
@CONTRATO
Mostrar la cita
#4 Javier Loria
19/05/2004 - 16:23 | Informe spam
Hola:
Opino igual que Carlos, pero lo que quieres hacer lo logras
== Set rs = rs.NextRecordset
== Ahora rs, tiene el segundo recordset.

Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Jomaweb escribio:
Mostrar la cita
Ads by Google
Search Busqueda sugerida