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

do-loop que no borra todos los registros

Estas en el tema de do-loop que no borra todos los registros en el foro de ASP Clásico en Foros del Web. Saludos a todos: He decidido volver a empezar ha rehacer un código a ver si así lo veo más claro. Luego ya lo pondré bonito. ...
  #1 (permalink)  
Antiguo 03/11/2004, 11:43
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
do-loop que no borra todos los registros

Saludos a todos:
He decidido volver a empezar ha rehacer un código a ver si así lo veo más claro. Luego ya lo pondré bonito.
El caso es que me sale a medias, es decir solo realiza parte del trabajo. El problem es el siguiente:

Tengo en una DB hecha en access donde hay minoristas y mayoristas de viajes.
Lo que pretendo es que cuando un mayorista borra sus ofertas, se borren antes las ofertas de los minoristas que estén relacionadas con las ofertas que el mayorista esta eliminando y luego se borren las ofertas ya seleccionadas del mayorista.

El mayorista selecciona las ofertas a borrar mediante un formulario web donde va escogiendo en funcion de unos campos y cuando envia el formulario se borran las ofertas.

Explico el problema con un ejemplo:
Un mayorista determinado quiere borrar todas sus ofertas (3 por ejemplo) 2 de esas ofertas tienen a un minorista suscrito.
Mediante el RS.filter listo las ofertas del mayorista que voy a borrar. Y con el RS2 selecciono las ofertas suscritas de los minoristas.
El caso es que me borra siempre todas las ofertas del mayorista seleccionadas con RS.filter y solo la primera oferta relacionada del minorista. Es decir no sigue buscando el resto y no veo el por qué (obviamente no da ningún error).
Les envio el código:
Les marco en rojo donde creo que debe andar el asunto:

Código:
 <!--#INCLUDE file="../../../adovbs.asp"--> 
<%
IF (request.form <> "") THEN
 'Para conexión a dsn arsys con ACCESS
 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
 'Termina aquí la conexion a dsn arsys con ACCESS
 function CortarNombreFichero
  imagen=rs("imagenoferta")
  len(imagen)
  posicioncaracterbuscar=instrrev(imagen,"/")+1
  response.write mid(imagen,posicioncaracterbuscar)
 end function
 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>")
 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
  response.write "el filtro es: " & filtro%>
  <table width="100%" border="0" cellspacing="0" cellpadding="1">
	 <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">Publicación</font></td>
	 <td width="13%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">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
	'Abrimos el recordset RS2 para listar los registros del minorista que se van a borrar
	set Conn2= Server.CreateObject("ADODB.Connection") 
	Set RS2=Server.CreateObject("ADODB.Recordset")
	Conn2.ConnectionString = "DSN=clubviajesoferta.com.turofertas"
	sqlstring2="select * from ofertasmayoristas where imagenofertareferida=" & "'" & rs("imagenoferta") & "'"
	Conn2.open
	
		
	response.write ("Se han borrados las siguientes ofertas: <p> borrarofertasmayoristas.asp")
	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"><%CortarNombreFichero%></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>
   <%'Borramos el registro seleccionado en el formulario de borrar registros
   rs.movefirst
   RS2.Open sqlstring2, Conn2, 3, 3
   rs2.movefirst
   do while not rs.bof and not rs.eof
	do while not rs2.bof and not rs2.eof	  
	 response.write "<br>registro minorista a borrar: " & rs2("referenciaoferta")
	 rs2.delete
	 rs2.movenext
	loop
	rs.delete
	'La linea siguiente es para que el recordset RS avance al siguiente registro
	rs.movenext
   loop
   end if
 end if%>
 <br>
 <br>
 <A HREF="../../../modulo_gestion.asp?nombreusuario=<%=nombreusuario%>" target="_parent">Menu principal </A> ** <A HREF="borrar_ofertas.asp?nombreusuario=<%=nombreusuario%>" 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 empresanombrefiscal from clientes where nombreusuario=" & "'" &nombreusuario& "'"
 Conn1.open
 Set RS1 = conn1.execute (sqlstring)
 
 response.write "La empresa es: " & categoria = rs1("empresanombrefiscal")
 %>  
   Rellene el campo por el cual desea realizar la búsqueda </p>
   <form name="form1" method="post" action="borrar_ofertas_mayoristas.asp?nombreusuario=<%=nombreusuario%>">
	 <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"  onfocus="blur()" id="empresaoferta" value="<%=rs1("empresanombrefiscal")%>" 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>
A ver si pueden echarme una mano.
GRacias
  #2 (permalink)  
Antiguo 03/11/2004, 14:06
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
No sería con un par de instrucciones SQL (seguro no han de ser tan simples como estas, pero la idea general es esa):

ObjCommand.Execute "Delete from minoristas where claveOferta = " & clave
ObjCommand.Execute "Delete from mayoristas where claveOferta = " & clave

Saludos
  #3 (permalink)  
Antiguo 06/11/2004, 15:52
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años, 1 mes
Puntos: 4
................
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 11:56.