Foros del Web » Programando para Internet » ASP Clásico »

Problemas con Open y Close

Estas en el tema de Problemas con Open y Close en el foro de ASP Clásico en Foros del Web. En este codigo me da el error ADODB.Recordset error '800a0e78' Operation is not allowed when the object is closed. y tambien con Open cuando lo ...
  #1 (permalink)  
Antiguo 03/02/2006, 07:40
 
Fecha de Ingreso: abril-2005
Mensajes: 84
Antigüedad: 19 años, 1 mes
Puntos: 0
Problemas con Open y Close

En este codigo me da el error ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed. y tambien con Open cuando lo abro. que podra ser...

[ASP]
.
.
.

sqlseleccion="Select * from tjugadores where equipo='"&session("equipo")&"' and titular is not null order by titular ASC"



rs4.Open sqlseleccion, Conn

%>
<body>
<% n=1 %>
<% do while (n < 5) and not rs4.Eof
if rs4("titular")<> cint(n) then
sqluno="update tjugadores set titular = " & cint(n) & " where cambio='x' and equipo='"&session("equipo")&"'"
sqluno1="update tjugadores set reserva = null WHERE cambio='x' and equipo='"&session("equipo")&"'"
sqluno2="update tjugadores set lesionado = null WHERE cambio='x' and equipo='"&session("equipo")&"'"

rs4.Open sqluno
rs4.Open sqluno1
rs4.Open sqluno2
Exit Do
end if
rs4.movenext
n = n + 1
loop

%>

[/ASP]
  #2 (permalink)  
Antiguo 03/02/2006, 07:50
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 18 años, 5 meses
Puntos: 8
espero que te sirva esto

al parecer es donde el problema esta en la apretura del recordset
te recomiendo que lo hagas asi
<%
set rs1 = Conn.execute("Select * from tjugadores where equipo='"&session("equipo")&"' and titular is not null order by titular ASC")

response.write"<body>"
n=1
do while (n < 5) and not rs4.Eof

if rs4("titular")<> cint(n) then
set rs1 = Conn.execute("update tjugadores set titular = " & cint(n) & " where cambio='x' and equipo='"&session("equipo")&"'")
set rs2 = Conn.execute("update tjugadores set reserva = null WHERE cambio='x' and equipo='"&session("equipo")&"'")
set rs3 = Conn.execute("update tjugadores set lesionado = null WHERE cambio='x' and equipo='"&session("equipo")&"'")
end if
n = n + 1
aca mueves el RS con un MoveNext

loop

%>
__________________
Mc_Quake

Para ayudar en lo que se pueda:Zzz:
  #3 (permalink)  
Antiguo 03/02/2006, 08:06
 
Fecha de Ingreso: abril-2005
Mensajes: 84
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias por la ayuda, aunque aun me siguen saliendo los mismos errores.
Me gustarioa poder hacerlo con rs.Open sqltxt , pero veo que no hay manera.

Un saludo.
  #4 (permalink)  
Antiguo 03/02/2006, 08:53
Avatar de FiNo  
Fecha de Ingreso: octubre-2004
Ubicación: Costa Rica
Mensajes: 265
Antigüedad: 19 años, 8 meses
Puntos: 1
Buenas a ver si te funciona esto:

sql="update tjugadores set titular = " & cint(n) & ", reserva = null, lesionado = null "&_
" where cambio='x' and equipo='"&session("equipo")&"'"
Conn.Execute(SQL)
__________________
3S-CRM
  #5 (permalink)  
Antiguo 03/02/2006, 09:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cita:
Operation is not allowed when the object is closed
¿que linea exactamente te manda el error?
  #6 (permalink)  
Antiguo 03/02/2006, 09:30
 
Fecha de Ingreso: abril-2005
Mensajes: 84
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola mirar, tengo este codigo pero SIEMPRE me coge el valor 1.

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = "& Server.MapPath ("ligaACB.mdb")
set rs4 = CreateObject("ADODB.Recordset")
sql3="update tjugadores set lesionado = null WHERE cambio='x' and equipo='"&session("equipo")&"'"
sql4="update tjugadores set reserva = null WHERE cambio='x' and equipo='"&session("equipo")&"'"
sqlb="update tjugadores set cambio=null WHERE cambio='x' and equipo='"&session("equipo")&"'"
sqlseleccion="Select * from tjugadores where equipo='"&session("equipo")&"' and titular is not null order by titular ASC"




rs4.Open sqlseleccion, Conn
%>
<body>
<% n=1 %>
<% do while not rs4.eof

if rs4("titular")<> cint(n) then
rs4.close
sqluno="update tjugadores set titular = " & cint(n) & " , reserva=null , lesionado=null where cambio='x' and equipo='"&session("equipo")&"'"
rs4.open sqluno
Exit Do
end if
rs4.movenext
n = n + 1
loop

%>

Gracias por vuestra ayuda.
  #7 (permalink)  
Antiguo 03/02/2006, 09:40
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
A ver ..... ¿cuál es la pregunta original?, ya me perdí
  #8 (permalink)  
Antiguo 03/02/2006, 11:24
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Veamos... Deja un momento que te ordene el código...

Código:
sqlseleccion="Select * from tjugadores where equipo='" & session("equipo") & "' and titular is not null order by titular ASC"

rs4.Open sqlseleccion, Conn

%>
<body>
<% 
n=1 
do while (n < 5) and not rs4.Eof
   if cint(rs4("titular")) <> n then
       sqluno="update tjugadores set titular = " & cint(n) & ", set reserva = null, lesionado = null where cambio='x' and  equipo='" & session("equipo") & "'"

       ' rs4.Open sqluno --> No puedes usar un objeto abierto, crea otro ó
       conn.execute sqluno
       Exit Do
   end if
   rs4.movenext
   n = n + 1
loop
rs4.close
set rs4 = nothing

Antes usabas un recordset ya abierto para actualizar un registro. O creas dos recordset (uno para el select y otro para el update) o bien un recordset para el select y un command para el update.


Un saludo
  #9 (permalink)  
Antiguo 03/02/2006, 18:32
 
Fecha de Ingreso: abril-2005
Mensajes: 84
Antigüedad: 19 años, 1 mes
Puntos: 0
Muchiiiiiiiiiiiiisimas gracias. El codigo funciona muy bien, eso del conn.execute maravilloso.

Última edición por Calamar01; 03/02/2006 a las 22:36
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:48.