Operation is not allowed when the object is closed

29/06/2006 - 17:56 por Manuel Vera | Informe spam
"Operation is not allowed when the object is closed"

Ahora esta apareciendo este error en mi sitio web.
Aparece en una página que tenia MESES o AÑOS funcionando sin problema.
Ya el SP le había colocado la sentencia SET NOCOUNT ON desde hace mucho
tiempo.
¿porque ahora esta dando problemas?
Si ejecuto el SP desde el QueryAnalizer, arroja varios registros y no da
ningun mensaje de error.

Alguna sugerencia?
Consegui que debia usar lo siguiente en ASP:
IF RS.State = 1 THEN
IF RS.EOF THEN ' aqui es donde estaba dando el error, en esta validacion
.
END IF
END IF

Pero, ¿porque sucede este error?

Gracias
MV

Preguntas similare

Leer las respuestas

#1 Matías Iacono
29/06/2006 - 20:15 | Informe spam
Como obtienes el recordset?

Saludos

Matías Iacono
Microsoft MVP ASP/ASP.net
"Manuel Vera" escribió en el mensaje
news:
"Operation is not allowed when the object is closed"

Ahora esta apareciendo este error en mi sitio web.
Aparece en una página que tenia MESES o AÑOS funcionando sin problema.
Ya el SP le había colocado la sentencia SET NOCOUNT ON desde hace mucho
tiempo.
¿porque ahora esta dando problemas?
Si ejecuto el SP desde el QueryAnalizer, arroja varios registros y no da
ningun mensaje de error.

Alguna sugerencia?
Consegui que debia usar lo siguiente en ASP:
IF RS.State = 1 THEN
IF RS.EOF THEN ' aqui es donde estaba dando el error, en esta
validacion
.
END IF
END IF

Pero, ¿porque sucede este error?

Gracias
MV

Respuesta Responder a este mensaje
#2 Manuel Vera
29/06/2006 - 21:13 | Informe spam
Este es parte del codigo:

x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x

SQL = "{call spProcedimiento (" & idcod & ")}"
'ver mas abajo...
call AbrirDatosOff( gConnect, Data, SQL )

'la linea que sigue fue la solucion recomendada
'la cual funciona. Sin embargo, ¿porque ahora ocurre el error con EOF?
if Data.State = 1 then ' **SOLUCION TEMPORAL

'la siguiente linea, con EOF, es la del problema
'este error aparece intermitente o aleatorio, es decir,
'la misma pagina a veces da error y otras no
'¿será cuestion de TimeOut?
if not Data.EOF then ' **ESTA ES LA DEL ERROR**
aListado = Data.GetRows()
end if
Data.Close
end if

x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x

sub AbrirDatosOff(gConnect,gData,SQL)
on error resume next
with gData
.CursorLocation = adUseClient
.CursorType = adOpenForwardOnly '0
.LockType = adLockReadOnly '1
.Open SQL, gConnect
set .ActiveConnection = nothing
end with
if Err.number <> 0 then
SQL = Err.Description & vbCrLf & "SQL: " & SQL
call Err.Raise( Err.number , Err.Source , SQL , Err.helpfile ,
Err.HelpContext )
end if
end sub

x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x

Gracias
MV


"Matías Iacono" escribió en el mensaje
news:eR00$
Como obtienes el recordset?

Saludos

Matías Iacono
Microsoft MVP ASP/ASP.net
"Manuel Vera" escribió en el mensaje
news:
"Operation is not allowed when the object is closed"

Ahora esta apareciendo este error en mi sitio web.
Aparece en una página que tenia MESES o AÑOS funcionando sin problema.
Ya el SP le había colocado la sentencia SET NOCOUNT ON desde hace mucho
tiempo.
¿porque ahora esta dando problemas?
Si ejecuto el SP desde el QueryAnalizer, arroja varios registros y no da
ningun mensaje de error.

Alguna sugerencia?
Consegui que debia usar lo siguiente en ASP:
IF RS.State = 1 THEN
IF RS.EOF THEN ' aqui es donde estaba dando el error, en esta
validacion
.
END IF
END IF

Pero, ¿porque sucede este error?

Gracias
MV





Respuesta Responder a este mensaje
#3 Matías Iacono
29/06/2006 - 21:27 | Informe spam
No veo nada :(

Solo puedo decir algunas cosas que me quedan en dudas, pero supongo que lo
tienes correcto.

Por ejemplo, si usas una conexion que no se haya realizado un CLOSE por
alguna condicion.

O que efectivamente se haya realizado un OPEN (Aunque en la forma de manejar
el recordset puede variar todo esto)

La otra que se me ocurre es que se carguen datos de forma asincrona (que no
tiene mucha logica pero por ahi :) ) por lo que los datos aun no se han
cargado, pero ya llegó al codigo (Solo digo lo que me viene a la cabeza)

Pero veo que tienes un control de errores, asi que deberías, si hay,
mostrate un mensaje.

Personalmente no veo nada raro.

Matías Iacono
Microsoft MVP ASP/ASP.net
"Manuel Vera" escribió en el mensaje
news:
Este es parte del codigo:

x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x

SQL = "{call spProcedimiento (" & idcod & ")}"
'ver mas abajo...
call AbrirDatosOff( gConnect, Data, SQL )

'la linea que sigue fue la solucion recomendada
'la cual funciona. Sin embargo, ¿porque ahora ocurre el error con EOF?
if Data.State = 1 then ' **SOLUCION TEMPORAL

'la siguiente linea, con EOF, es la del problema
'este error aparece intermitente o aleatorio, es decir,
'la misma pagina a veces da error y otras no
'¿será cuestion de TimeOut?
if not Data.EOF then ' **ESTA ES LA DEL ERROR**
aListado = Data.GetRows()
end if
Data.Close
end if

x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x

sub AbrirDatosOff(gConnect,gData,SQL)
on error resume next
with gData
.CursorLocation = adUseClient
.CursorType = adOpenForwardOnly '0
.LockType = adLockReadOnly '1
.Open SQL, gConnect
set .ActiveConnection = nothing
end with
if Err.number <> 0 then
SQL = Err.Description & vbCrLf & "SQL: " & SQL
call Err.Raise( Err.number , Err.Source , SQL , Err.helpfile ,
Err.HelpContext )
end if
end sub

x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x

Gracias
MV


"Matías Iacono" escribió en el mensaje
news:eR00$
Como obtienes el recordset?

Saludos

Matías Iacono
Microsoft MVP ASP/ASP.net
"Manuel Vera" escribió en el mensaje
news:
"Operation is not allowed when the object is closed"

Ahora esta apareciendo este error en mi sitio web.
Aparece en una página que tenia MESES o AÑOS funcionando sin problema.
Ya el SP le había colocado la sentencia SET NOCOUNT ON desde hace mucho
tiempo.
¿porque ahora esta dando problemas?
Si ejecuto el SP desde el QueryAnalizer, arroja varios registros y no da
ningun mensaje de error.

Alguna sugerencia?
Consegui que debia usar lo siguiente en ASP:
IF RS.State = 1 THEN
IF RS.EOF THEN ' aqui es donde estaba dando el error, en esta
validacion
.
END IF
END IF

Pero, ¿porque sucede este error?

Gracias
MV









Respuesta Responder a este mensaje
#4 urko binarya
30/06/2006 - 12:14 | Informe spam
si utilizas includes de ficheros en tu codigo comprueba que en esos ficheros
no cierras las conexiones o que utilizas las mismas conexiones.
saludos
urko

"Manuel Vera" escribió en el mensaje
news:
"Operation is not allowed when the object is closed"

Ahora esta apareciendo este error en mi sitio web.
Aparece en una página que tenia MESES o AÑOS funcionando sin problema.
Ya el SP le había colocado la sentencia SET NOCOUNT ON desde hace mucho
tiempo.
¿porque ahora esta dando problemas?
Si ejecuto el SP desde el QueryAnalizer, arroja varios registros y no da
ningun mensaje de error.

Alguna sugerencia?
Consegui que debia usar lo siguiente en ASP:
IF RS.State = 1 THEN
IF RS.EOF THEN ' aqui es donde estaba dando el error, en esta
validacion
.
END IF
END IF

Pero, ¿porque sucede este error?

Gracias
MV

Respuesta Responder a este mensaje
#5 Manuel Vera
30/06/2006 - 13:26 | Informe spam
Esa posibilidad esta descartada, pues de ser esa la causa, SIEMPRE ocurriria
el error. Pero el error aparece aleatoriamente, a veces si a veces no.

De todos modos gracias por la sugerencia.

MV

"urko binarya" escribió en el mensaje
news:
si utilizas includes de ficheros en tu codigo comprueba que en esos
ficheros no cierras las conexiones o que utilizas las mismas conexiones.
saludos
urko

"Manuel Vera" escribió en el mensaje
news:
"Operation is not allowed when the object is closed"

Ahora esta apareciendo este error en mi sitio web.
Aparece en una página que tenia MESES o AÑOS funcionando sin problema.
Ya el SP le había colocado la sentencia SET NOCOUNT ON desde hace mucho
tiempo.
¿porque ahora esta dando problemas?
Si ejecuto el SP desde el QueryAnalizer, arroja varios registros y no da
ningun mensaje de error.

Alguna sugerencia?
Consegui que debia usar lo siguiente en ASP:
IF RS.State = 1 THEN
IF RS.EOF THEN ' aqui es donde estaba dando el error, en esta
validacion
.
END IF
END IF

Pero, ¿porque sucede este error?

Gracias
MV





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