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

Abro 2 RSet y devueve error: La operación no está permitida si el objeto está cerrado

Estas en el tema de Abro 2 RSet y devueve error: La operación no está permitida si el objeto está cerrado en el foro de ASP Clásico en Foros del Web. Saludos: Me están empezando a entrar manias destructoras con el pc y creo que voy a empezar a tirarle unos manzanazos de cuidado.....;) por eso ...
  #1 (permalink)  
Antiguo 12/10/2004, 11:31
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 10 meses
Puntos: 0
Abro 2 RSet y devueve error: La operación no está permitida si el objeto está cerrado

Saludos:
Me están empezando a entrar manias destructoras con el pc y creo que voy a empezar a tirarle unos manzanazos de cuidado.....;) por eso les pido me echen una mano y mando el código más abajo.
A ver me explico:
Estoy intentando que un formulario para borrar registros de ofertas solo borre los registros del usuario que se ha identificado.
La cosa es que cuando el formulario se carga necesito que el campo "empresaoferta" se rellene automáticamente con el contenido del campo "empresa" de la tabla "clientes".
Como ya tengo abierta una conexión CONN con un recordset RS sobre la tabla "ofertasmayoristas" para realizar el borrado, no me deja abrir el Recorset sobre la tabla clientes de las lineas 134-140.
El error que me envia el navegador es:

----------------------------------
ADODB.Connectionerror '800a0e78'
La operación no está permitida si el objeto está cerrado.
/gestion_mayoristas/ofertas/borrar/borrar_ofertas.asp, line 138
----------------------------------

La cosa es que no he cerrado la conexión ni el recordset. Alguien puede ayudarme. Ya se que el código es largo lo pongo entero por si acaso me fuese a comer algo que fuese importante. Señalo en rojo las líneas de los recordset para que se localice más facil.

Código:
 
<<A href="mailto:%@LANGUAGE="VBSCRIPT">%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%response.Expires=0
Response.AddHeader "PRAGMA", "NO-CACHE" %> 
<% if session("autorizacion")=-1  then 
response.redirect "../../login.asp"
end if
nombreusuario=request.QueryString("nombreusuario")
%>
<html>
<head>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
	document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<body background="file:///C|/obradoiroweb/obradoiroweb...n_opacidad.jpg" leftmargin="5" topmargin="5" marginwidth="5" marginheight="5">
<!--Incluimos el fichero de constantes-->
<!--#INCLUDE file="../../../adovbs.asp"-->

<% IF (request.form <> "") then 
set Conn= Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DSN=clubviajesoferta.com.turofertas"
Conn.open
Set RS=Server.CreateObject("ADODB.Recordset")
rs.activeconnection=Conn 
rs.source="ofertasmayoristas"
rs.Locktype = adLockOptimistic
rs.CursorType = adOpenDinamic
rs.open

 
Poner_AND= False
'El Codigo siguiente hace que si el formulario se envia vacio no se borre toda la tabla
Vacio=true
For each parametro in request.form 
 parametro = Lcase(parametro)
  if request.form(parametro) <> "" then
   vacio = false   
   exit for
  end if 
next
if vacio=true then
 response.write("<br><br><div align=""center""><font face= ""Arial, Helvetica, sans-serif"" size=""3"" color=""#FB4C50""><strong>Operación no permitida.<br> Al dejar todos los campos vacios, ha intentado borrar la tabla completa</strong></font></div>")
 'response.write "Operación no permitida. Al dejar todos los campos vacios, ha intentado borrar la tabla completa"
end if

if not vacio then
'Termina el codigo de comprobacion del formulario vacio para no borrar toda la tabla
Filtro= ""
 FOR EACH Parametro IN Request.Form
 IF Request.Form (Parametro) <> "" THEN
  IF Poner_AND THEN
   Filtro= Filtro & " AND " & Parametro & "='"
   Filtro= Filtro & Request.Form(Parametro) & "'"
  ELSE
   Filtro= Filtro & Parametro & "='"
   Filtro= Filtro & Request.Form(Parametro) & "'"
   Poner_AND = True
  END IF
 END IF 
NEXT

Filtro=Lcase(filtro)
rs.filter= Filtro 
%>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
  <tr bgcolor="#e0e0e0"> 
	<td width="17%"> <div align="left"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Referencia</font></div></td>
	<td width="33%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Denominación</font></td>
	<td width="8%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Empresa</font></td>
	<td width="13%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Imagen</font></td>
	<td width="16%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Fecha Publicación</font></td>
	<td width="13%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Fecha Validez</font></td>
  </tr>
  <% if rs.bof and rs.eof then
  response.write("<br><br><div align=""center""><font face= ""Arial, Helvetica, sans-serif"" size=""3"" color=""#FB4C50""><strong>No se encontraron coincidencias con la búsqueda solicitada </strong></font></div>")
  else
 response.write ("Se han borrados las siguientes ofertas <p>")
rs.movefirst
do while not rs.eof %>
<% if colorfila=0 then
	color="#EEF0F7"
  colorfila=1
 else
  color="FFFFFF"
  colorfila=0
 end if %>
  <tr valign="top" bgcolor="<%=color%>"> 
	<td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("referenciaoferta")%></font></td>
	<td><div align="justify"><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("denominacionoferta")%></font></div></td>
	<td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("empresaoferta")%></font></td>
	<td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("imagenoferta")%></font></td>
	<td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("fechapublicacionoferta")%></font></td>
	<td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("fechavalidezoferta")%></font></td>
  </tr>
<%
   rs.movenext 
loop 
%>
</table>
<%
rs.movefirst
do while not rs.eof
rs.delete
'Borra siempre el primer registro del filtro
rs.movefirst%>
<%loop%>
<%end if

end if%> 

<br>
<br>
<A HREF="../../../modulo_gestion.asp" target="_parent">Menu principal </A> ** <A HREF="frame_borrar.htm" target="_parent">Borrar Oferta</A> 
<%
'rs.close
'Conn.close
%>
  <%ELSE%>
  
 <%
 set Conn1= Server.CreateObject("ADODB.Connection") 
 Set RS1=Server.CreateObject("ADODB.Recordset")
 Conn1.ConnectionString = "DSN=clubviajesoferta.com.turofertas"
 sqlstring="select empresa from clientes where nombreusuario=" & "'" &nombreusuario& "'"
 Set RS1 = conn1.execute (sqlstring)
 Conn1.open
 response.write "La empresa es: " & categoria = rs1("empresa")
 %>  
   Rellene el campo por el cual desea realizar la búsqueda </p>
   <form name="form1" method="post" action="borrar_ofertas.asp">
	 <table width="100%"  border="0" cellpadding="0" cellspacing="0">
	   <tr>
		 <td width="23%">Referencia</td>
		 <td colspan="3"><input name="referenciaoferta" type="text" id="referenciaoferta" size="20" maxlength="20"></td>
	   </tr>
	   <tr>
		 <td>Denominaci&oacute;n</td>
		 <td colspan="3"><input name="denominacionoferta" type="text" id="denominacionoferta" size="11" maxlength="11"></td>
	   </tr>
	   <tr>
		 <td>Destino</td>
		 <td colspan="3"><select name="destinooferta" id="destinooferta">
		   <option value="""" selected>Seleccione un destino</option>
		   <option value="2 x 1 Ofertas">2 x 1 Ofertas</option>
		   <option value="&Aacute;frica">&Aacute;frica</option>
		   <option value="Am&eacute;rica">Am&eacute;rica</option>
		   <option value="Asia">Asia</option>
		   <option value="Baleares">Baleares</option>
		   <option value="Balnearios-Turismo Salud">Balnearios-Turismo Salud</option>
		   <option value="Canarias">Canarias</option>
		   <option value="Caribe">Caribe</option>
		   <option value="Costas Espa&ntilde;olas">Costas Espa&ntilde;olas</option>
		   <option value="Cruceros">Cruceros</option>
		   <option value="Europa">Europa</option>
		   <option value="Ferias">Ferias</option>
		   <option value="Multiaventura">Multiaventura</option>
		   <option value="Pa&iacute;ses Mediterr&aacute;neos">Pa&iacute;ses Mediterr&aacute;neos</option>
		   <option value="Parques Tem&aacute;ticos">Parques Tem&aacute;ticos</option>
		   <option value="Portugal">Portugal</option>
		   <option value="Puentes - Fin de Semana">Puentes - Fin de Semana</option>
		   <option value="Ski y Monta&ntilde;a">Ski y Monta&ntilde;a</option>
		   <option value="Tarifas A&eacute;reas">Tarifas A&eacute;reas</option>
		   <option value="Turismo Juvenil">Turismo Juvenil</option>
		   <option value="Turismo Rural">Turismo Rural</option>
		 </select></td>
	   </tr>
	   <tr>
		 <td>Empresa</td>
		 <td colspan="3"><input name="empresaoferta" type="text" id="empresaoferta" value="<%=rs("empresaoferta")%>" size="35" maxlength="35"></td>
	   </tr>
	   <tr>
		 <td>Fecha Publicaci&oacute;n</td>
		 <td width="13%"><input name="fechapublicacionoferta" type="text" id="fechapublicacionoferta" size="10" maxlength="10"></td>
		 <td width="4%"><img src="../../../images/iconos/ayuda.gif" width="16" height="20"></td>
		 <td width="60%"><font size="2" face="Arial, Helvetica, sans-serif">DD/MM/AAAA</font></td>
	   </tr>
	   <tr>
		 <td>Fecha Validez</td>
		 <td><input name="fechavalidezoferta" type="text" id="fechavalidezoferta" size="10" maxlength="10">		   </td>
		 <td><img src="../../../images/iconos/ayuda.gif" width="16" height="20"></td>
		 <td><font size="2" face="Arial, Helvetica, sans-serif">DD/MM/AAAA</font></td>
	   </tr>
	   <tr>
		 <td>&nbsp;</td>
		 <td colspan="3"><input type="submit" value="Borrar Oferta" onClick="return window.confirm('Eliminar el/los registro/s')">
			 <input type="reset" value="Limpiar Formulario"></td>
	   </tr>
	 </table>
</form>
   <%end if%>
</body>
</html>
Muchas gracias y siento haber puesto tanto código.
  #2 (permalink)  
Antiguo 12/10/2004, 11:35
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
El problema decbería ser aqui

set Conn1= Server.CreateObject("ADODB.Connection")
Set RS1=Server.CreateObject("ADODB.Recordset")
Conn1.ConnectionString = "DSN=clubviajesoferta.com.turofertas"
sqlstring="select empresa from clientes where nombreusuario=" & "'" &nombreusuario& "'"

Set RS1 = conn1.execute (sqlstring)
Conn1.open


Intentas utilizar la conexión antes de abrirla...


Ábrela y después ejecutas el comando de SQL

Conn1.open
Set RS1 = conn1.execute (sqlstring)



Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 12/10/2004, 11:50
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 10 meses
Puntos: 0
Muchas gracias y perdon por el error, tan tonto. Pero a lo mejor por eso no lo daba visto...
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 06:12.