DESEPERADO: Llamar a un Stored Procedure que tiene dentro un cursor, desde asp

Carlos
26 de Junio del 2003
Comentario: tenemos, una tabla, un stored procedure y una página asp, TODO SENCILLITO

la tabla sencillita, con dos campos:
TABLE test:
[IID] [numeric](18, 0) IDENTITY (1, 1) NOT NULL
[texto] [nvarchar] (50)

El Stored procedure (versión sin cursor, que funciona):

CREATE PROCEDURE procTest (@texto as nvarchar(10), @IID as int OUTPUT)
AS
set nocount on
insert into test(Texto) values(@Texto)
set @IID = (select Max(IID) from test)
-- Aquí iría lo del cursor
select * from test
return
GO

La página asp:

dim cmd
dim conn
dim basura
dim reg

set cmd = Server.CreateObject("ADODB.Command")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Application("cnActiveConnection")
cmd.ActiveConnection = conn
cmd.CommandText = "procTest"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@texto", adVarChar, adParamInput, 10, "pamametro")
cmd.Parameters.Append cmd.CreateParameter("@IID", adInteger, adParamOutput)
set reg = Server.CreateObject("ADODB.recordset")
set reg = cmd.Execute
While Not reg.EOF
response.write (reg.Fields("texto"))
reg.MoveNext
Wend
response.write "
Valor del parámetro de salida: " & cmd.Parameters("@IID")



Hasta aquí todo perfecto

pero como me de por poner dentro del Stored Procedure, por ejemplo, lo siguiente:

declare cursor1 cursor for SELECT texto from test
open cursor1
close cursor1
DEALLOCATE cursor1

se fastidió el invento, da un error:

ADODB.Recordset error '800a0e78'
Operation is not allowed when the object is closed.

de hecho poniendo todo menos la línea 'fetch next from cursor1 into @Texto' sigue funcionando.

POR FAVOR, LLEVO DOS DÍAS CON ESTA M........

Daniel
26 de Junio del 2003
Ponga set nocount on en el inicio de tu stored_procedure.

Alo
26 de Junio del 2003
Ocupamos realizar un stored procedure donde la sentencia de SQL sea variable, es decir, estamos concatenando para armar la sentencia, y como preparar la sentencia, ejecutarla y regresarla.....
Gracias!!!
:)
p.d.
Espero hayas encontrado tu respuesta...
tenemos 3 dias intentandolo y no... :(