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

Borrando registros: Ocurrio una excepción. Error 80020009. Ayuda

Estas en el tema de Borrando registros: Ocurrio una excepción. Error 80020009. Ayuda en el foro de ASP Clásico en Foros del Web. Saludos a todos: A ver si pueden ayudarme, de verdad que lo necesito ya que no doy con el tema. Veran tengo un formulario que ...
  #1 (permalink)  
Antiguo 22/02/2005, 04:46
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Mensaje Borrando registros: Ocurrio una excepción. Error 80020009. Ayuda

Saludos a todos:
A ver si pueden ayudarme, de verdad que lo necesito ya que no doy con el tema.
Veran tengo un formulario que tiene que borrar datos en dos tablas, además de los ficheros a los que se hace referencia en la tabla del recordset RS:
Estas tablas son:

Tabla Recordset
------------- ----------
hotelesturismo RS
clientes RS1
tarifasturismo RS2

El formulario de borrar lanza un filtro dependiendo de los campos que estén cubiertos. Este filtro se aplica para seleccionar los registros que se van a borrar.
Antes de borrarlos hago que borre los archivos a los que se hace referencia en la tabla hotelesturismo.
Hasta aquí todo bien.

El problema viene porque en la tabla tarifasturismo se deben borrar todos los registros que cumplen que el campo comun de las tablas hotelesturismo y tarifasturismo (referenciahotelcasa) sea identico.

Les paso el código a ver si me pueden dar alguna pista. He desabilitado los rs.close y conn.close porque de tantos cambios que he hecho deben haberme quedado colgados y si los activo me da un error, pero eso ya lo revisaré al final.

He puesto dos tablas para poder ver los registros que se borran antes de borrarlos.

El error que me devuelve es:

error '80020009'


Ocurrió una excepción. line 120

Marco la línea 120 en verde y el código que tiene que encontrar los registros a borrar de la tabla tarifasturismo en rojo

Ante todo muchísimas gracias.

Código:
 
<body 
<!--#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="hotelesturismo"
rs.Locktype = adLockOptimistic
rs.CursorType = adOpenDinamic
rs.open
'Termina aquí la conexion a dsn arsys con ACCESS
 
 
Set RS2=Server.CreateObject("ADODB.Recordset")
rs2.activeconnection=Conn 
rs2.source="tarifasturismo"
rs2.Locktype = adLockOptimistic
rs2.CursorType = adOpenDinamic
rs2.open
 
 
Poner_AND= False
 
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)
response.write "Filtro rs: " & filtro & "<br>"
rs.filter= Filtro 
 
if rs.bof and rs.eof then
No se encontraron coincidencias con la búsqueda solicitada 
else%> 
<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">Nombre</font></td>
<td width="8%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Localidad</font></td>
</tr>
 
<%response.write ("Se han borrados los siguientes registros de la tabla hotelesturismo<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("referenciahotelcasa")%></font></td>
<td><div align="justify"><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("empresanombrecomercial")%></font></div></td>
<td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("localidad")%></font></td>
</tr>
<%rs.movenext 
loop%>
</table>
 
 
<%'Borrar los registros del RS2
'response.write "<br>La referencia que tiene que borrar es: " & rs("referenciahotelcasa") & "<br>"
Sqlstring="select * from tarifasturismo where referenciahotelcasa=" & "'" &rs("referenciahotelcasa")& "'"
rs2.filter=Sqlstring
 
if rs2.bof and rs2.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%> 
	<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">Identificadro</font></div></td>
	<td width="33%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Referencia</font></td>
	<td width="8%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">tanohabitaciondoblebano</font></td>
	</tr>
 
	<%response.write ("Se borrarán los siguientes registros de la tabla Tarifasturismo<p>")
	rs2.movefirst
	do while not rs2.eof 
	 if colorfila=0 then
	 color="#EEF0F7"
	 colorfila=1
	 else
	 color="FFFFFF"
	 colorfila=0
	 end if %>
	 <tr valign="top" bgcolor="<%=color%>"> 
	 <td><%=RS2("identificadoroferta")%></font></td>
	 <td><%=RS2("referenciahotelcasa")%></font></td>
	 <td><%=RS2("tanohabitaciondoblebano")%></td>
	 </tr>
	 <%rs2.movenext 
	loop
end if%>
</table>
 
<%rs.movefirst
do while not rs.eof
	'Construimos la ruta y el nombre del fichero que se va a borrar del servidor y 
	'que previamente escogimos mediante el formulario de borrar registros
	cadenaorigen=rs("imagen")
	if cadenaorigen <> "" then
	 cadenabuscar="../../"
	 'cadenacambiar="C:\Inetpub\vhosts\turofertas.com\httpdocs\"
	 cadenacambiar="c:/obradoiroweb/obradoiroweb/Turofertas/"
	 rutaimagenaborrar=replace(cadenaorigen,cadenabuscar,cadenacambiar,1,1,1)
	 set FSO=CreateObject("Scripting.FileSystemObject")
	 set file=fso.GetFile(rutaimagenaborrar)
	 file.delete
	end if
 
	cadenaorigen1=rs("imagen1")
	if cadenaorigen1 <> "" then
	 cadenabuscar1="../../"
	 'cadenacambiar1="C:\Inetpub\vhosts\turofertas.com\httpdocs\"
	 cadenacambiar1="c:/obradoiroweb/obradoiroweb/Turofertas/"
	 rutaimagenaborrar1=replace(cadenaorigen1,cadenabuscar1,cadenacambiar1,1,1,1)
	 set file=fso.GetFile(rutaimagenaborrar1)
	 file.delete	
	end if
 
	cadenaorigen2=rs("imagentarifario")
	if cadenaorigen2 <> "" then
	 cadenabuscar2="../../"
	 'cadenacambiar2="C:\Inetpub\vhosts\turofertas.com\httpdocs\"
	 cadenacambiar2="c:/obradoiroweb/obradoiroweb/Turofertas/"
	 rutaimagenaborrar2=replace(cadenaorigen2,cadenabuscar2,cadenacambiar2,1,1,1)
	 set file=fso.GetFile(rutaimagenaborrar2)
	 file.delete 
	end if
 
	'Borramos el registro seleccionado en el formulario de borrar registros
	rs.delete
	'Borra siempre el primer registro del filtro
	rs.movefirst
loop
end if
end if
 
'rs.close
'rs2.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: " & tipo = rs1("empresanombrefiscal")%>
 
Rellene el campo por el cual desea realizar la búsqueda </p>
<form name="form1" method="post" action="borrar_turismo.asp?nombreusuario=<%=nombreusuario%>">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="12%">Referencia</td>
<td colspan="6"><input name="referenciahotelcasa" type="text" tabindex="1" id="referenciahotelcasa" size="10" maxlength="10"></td>
</tr>
<tr>
<td>Nombre Fiscal </td>
<td colspan="6"><input name="empresanombrefiscal" type="text" id="empresanombrefiscal" onfocus="blur()" value="<%=rs1("empresanombrefiscal")%>"></td>
</tr>
<tr>
<td><p>Nombre Comercial </p></td>
<td colspan="3"><input name="empresanombrecomercial" type="text" id="empresanombrecomercial" tabindex="2" size="35" maxlength="35"></td>
<%if session("autorizacion") = 5 then%>
<td>Grupo</td>
<td width="1%"><select name="grupocasa" id="grupocasa">
<option value="ph">Pazos-Hospeder&iacute;a</option>
<option value="pr">Pazos-Residencia</option>
<option value="ch">Casas-Hospeder&iacute;a</option>
<option value="cr">Casas-Residencia</option>
<option value="ca">Casas de Aldea</option>
</select></td>
<%else%>
<td width="20%">Categor&iacute;a
<input name="categoriahotel" type="text" id="categoriahotel" size="1" maxlength="1">
<img src="../../../images/iconos/estrellas.gif" width="22" height="22" align="absbottom"></td>
<%end if%>
</tr>
<tr>
<td>Localidad</td>
<td width="28%"><input name="localidad" type="text" id="localidad" size="35" maxlength="35"></td>
<td width="17%">&nbsp;</td>
<td width="11%">&nbsp;</td>
<td width="11%">Provincia</td>
<td colspan="2"><input name="provincia" type="text" id="provincia" size="20" maxlength="20"></td>
</tr>
<tr>
<td>Tel&eacute;fono</td>
<td><input name="telefono" type="text" id="telefono" size="9" maxlength="9"></td>
<td>Tel&eacute;fono 1</td>
<td><input name="telefono1" type="text" id="telefono1" size="9" maxlength="9"></td>
<td>Fax</td>
<td colspan="2"><input name="fax" type="text" id="fax" size="9" maxlength="9"></td>
</tr>
<tr>
<td colspan="7"><div align="center">
<input type="submit" value="Borrar Hotel/Turismo Rural">			 
<input type="reset" value="Limpiar Formulario">
</div></td>
</tr>
</table>
</form>
<%END IF
'rs1.close
'conn1.close%>
</body>
</html>

Última edición por ciberpata; 22/02/2005 a las 04:48
  #2 (permalink)  
Antiguo 22/02/2005, 09:03
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 3 meses
Puntos: 1
Fijate que rs("referenciahotelcasa") no va a tener ningun valor, ya que antes de esto haces un loop hasta que rs.eof. Entonces en la línea 120 cuanto intenta capturar rs("referenciahotelcasa") te va a generar error.

Se entiende?

Saludos

Última edición por PMP; 22/02/2005 a las 09:04
  #3 (permalink)  
Antiguo 23/02/2005, 03:39
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
El do loop al que te referieres se hace porque tiene que recorrer el rs porque puede encontrar más de un registro.
  #4 (permalink)  
Antiguo 23/02/2005, 05:53
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 3 meses
Puntos: 1
Esta bien, yo solo te digo el motivo por el cual se genera el error.
Cuando queres obtener el valor de rs("referenciahotelcasa") estas en el EOF.

Me entendes lo que intento explicarte?

Saludos
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 22:31.