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

LLevo dos semanas como loco. Error de tipos en formulario.

Estas en el tema de LLevo dos semanas como loco. Error de tipos en formulario. en el foro de ASP Clásico en Foros del Web. Queridos amigos, porque a estas alturas ya casi lo somos (lo digo porque ya son varios los mensajes que he enviado), tengo que preguntaros sobre ...
  #1 (permalink)  
Antiguo 20/06/2003, 12:34
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 11 meses
Puntos: 0
LLevo dos semanas como loco. Error de tipos en formulario.

Queridos amigos, porque a estas alturas ya casi lo somos (lo digo porque ya son varios los mensajes que he enviado), tengo que preguntaros sobre un error que no soy capaz de solucionar. Y llevo dos semanas dandonle vueltas.
Vaya por delante que he tenido que hacer la conversión de tipos a la que me refiero más abajo y me ha funcionado bien en la página de insertar registros.

Querria que vieseis este codigo a ver donde estoy equivocandome porque ya no se donde mirar, hasta he soñado con el codigo.
Se trata de lo siguiente: Es una pagina en asp que debe poder modificar los registros en una tabla de access.
Funciona de la siguiente forma:
Se ingresa cualquier información sobre cualquier campo a buscar, tanto 1 campo como varios y luego devuelve un listado para que el registro pueda ser modificado. Cada registro aparece en una línea con un boton de modfiicar.
Si no rellenamos ningún campo entonces lista todos los registros de la tabla.
Hasta ahí todo va bien.
Cuando pulso sobre el boton "modificar" de cualquier registro los datos de dicho registro se procesan mediante otro formulario dentro de la misma página asp y luego se hace la modificación.
Es ahí donde me devuelve el error siguiente:


Provider error '80020005'

Tipo incorrecto.

/pendientes/modificar_ofertas.asp, line 66


Todos los campos de la tabla son de texto excepto 4:
Campo Tipo de datos
id Autonumérico - entero largo
fechasalida fecha
hotelprecio numerico-simple
hotelcategoria numerico-byte


Les envío el codigo de dicha pagina para ver si le pueden echar un vistazo. Les estaría eternamente agradecido.

Les marco la línea donde está el error

<HTML>
<TITLE> Base de datos </TITLE>
<!-- #INCLUDE file="../ADOVBS.inc" -->
<%IF (Request.Form <> "") THEN

'Para conexion a ODBC local
Set Ob_Conn = Server.CreateObject("ADODB.Connection")
'Ob_Conn.ConnectionString = "DSN=clubviajesoferta.com.access"
Set Ob_RS = Server.CreateObject("ADODB.Recordset")
' Abrimos el ODBC
Ob_Conn.open "cvo_odbc"
' Abrimos la tabla, declaramos que conexión esta abierta, tipo de cursor, tipo de cerrojo, y opciones
Ob_RS.open "ofertas", Ob_Conn, adOpenstatic, adLockOptimistic, adCmdTable

IF (Request.Form ("Clave") <> "") THEN
Filtro= "id= " & Request.Form ("Clave")
Ob_RS.Filter = Filtro
FOR EACH Parametro IN Ob_RS.Fields
IF Parametro.Name= "id" THEN
Ob_RS ("id")= CLng (Request.Form ("id"))
end if
if Parametro.name="fechasalida" then
Ob_RS ("fechasalida")= cdate (Request.form("fechasalida"))
end if
IF Parametro.Name= "hotelcategoria" THEN
Ob_RS ("hotelcategoria")= Cbyte (Request.Form ("hotelcategoria"))
end if
IF Parametro.Name= "hotelprecio" THEN
Ob_RS ("hotelprecio")= Csng (Request.Form ("hotelprecio"))
ELSE
Ob_RS (Parametro.Name)= Request.Form (Parametro.Name)
END IF

NEXT
Ob_RS.Update
Response.Write "<H3> Registro modificado </H3>"

ELSE
Poner_AND= False
Filtro= ""
FOR EACH Parametro IN Request.Form
IF Request.Form (Parametro) <> "" AND Parametro <> "PAGINA" 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)
Ob_RS.Filter = Filtro
IF Ob_RS.Eof THEN
Response.Write "<H3> No hay ningún registro con esas características </H3>"
ELSE
Response.Write "<TABLE BORDER=1> <TR>"
FOR EACH Parametro IN Ob_RS.Fields
Response.Write "<TH>" & Parametro.Name
NEXT
Response.Write "<TH> Modificar"

'Campo oculto para enviar la modificacion
DO WHILE NOT Ob_RS.Eof

'En la línea de abajo es donde produce el error

Response.Write "<TR> <FORM ACTION=modificar_ofertas.asp METHOD=Post>"
FOR EACH Parametro IN Ob_RS.Fields

select case(parametro)
Case "id" response.write "<TD> <INPUT SIZE=15 NAME=" & Parametro.Name & " VALUE='" & clng(Ob_RS (Parametro.Name)) & "'>"
Case "fechasalida" response.write "<TD> <INPUT SIZE=15 NAME=" & Parametro.Name & " VALUE='" & cdate(Ob_RS (Parametro.Name)) & "'>"
Case "hotelprecio" response.write "<TD> <INPUT SIZE=15 NAME=" & Parametro.Name & " VALUE='" & csng(Ob_RS (Parametro.Name)) & "'>"
Case "hotelcategoria" response.write "<TD> <INPUT SIZE=15 NAME=" & Parametro.Name & " VALUE='" & cbyte(Ob_RS (Parametro.Name)) & "'>"
Case else Response.Write "<TD> <INPUT SIZE=15 NAME=" & Parametro.Name & " VALUE='" & Ob_RS (Parametro.Name) & "'>"
end select

NEXT
Response.Write "<INPUT TYPE=Hidden NAME=id VALUE='" & clng((Ob_RS ("id"))) & "'>"
Response.Write "<TD> <INPUT TYPE=Submit VALUE=Modificar> </FORM>"
Ob_RS.MoveNext
LOOP
Response.Write "</TABLE><BR>"
END IF
END IF
Ob_RS.Close
Ob_Conn.Close %>
<A HREF="../modulodatos.asp"> Menu principal </A> **
<A HREF="modificar_ofertas.asp"> Otra modificación </A>


<% ELSE %>
<H3> ESCRIBA ALGÚN DATO DEL USUARIO A MODIFICAR </H3> <BR>
<FORM METHOD="Post" ACTION="modificar_ofertas.asp">
<table border="0" cellpadding="0">
<tr>
<td width="308" valign="top"><font color="#B9DB7D"><strong>Destino</strong></font><br>
<input name="destino" type="text" size="40" maxlength="20"> </td>
<td width="94" valign="top"><strong><font color="#B9DB7D">Pais</font></strong><br>
<input name="pais" type="text" size="20" maxlength="20"> </td>
<td width="125" valign="top"><strong><font color="#B9DB7D">Zona</font></strong><br>
<input name="zona" type="text" size="25" maxlength="25"> </td>
</tr>
<tr>
<td valign="top"><strong><font color="#B9DB7D">Salidas</font></strong><br>
<input name="salidas" type="text" size="40" maxlength="40"></td>
<td valign="top"><strong><font color="#B9DB7D">Fecha Salida</font></strong><br>
<input name="fechasalida" type="text" size="8" maxlength="8"></td>
<td valign="top"><font color="#B9DB7D"><strong>Mayorista</strong></font><br>
<input name="mayorista" type="text" size="20" maxlength="20"> </td>
</tr>
<tr>
<td colspan="3" valign="top"><strong><u>DATOS DEL HOTEL/APARTAMENTO</u></strong></td>
</tr>
<tr>
<td valign="top"><strong><font color="#B9DB7D">Clave</font></strong><br>
<input name="hotelclave" type="radio" value="hotel">
Hotel<br> <input type="radio" name="hotelclave" value="apartamento">
Apartamento<br> <input type="radio" name="hotelclave" value="aparthotel">
ApartHotel <br> <strong><font color="#B9DB7D">Nombre</font></strong><br>
<input name="hotelnombre" type="text" size="20" maxlength="20"> </td>
<td valign="top"><p><strong><font color="#B9DB7D">Categor&iacute;a<br>
</font></strong>
<input name="hotelcategoria" type="text" size="1" maxlength="1">
Estrella/Llaves<br>
<font color="#B9DB7D"><strong>Precio</strong></font><br>
<input name="hotelprecio" type="text" size="7" maxlength="7">
&euro;<br>
<strong><font color="#B9DB7D">Foto</font></strong><br>
<input name="hotelfoto" type="text" size="15" maxlength="15">
<strong> </strong></p></td>
<td valign="top"><p><strong><font color="#B9DB7D">Regimen <br>
<input type="radio" name="hotelregimen" value="alojamiento">
A<br>
<input type="radio" name="hotelregimen" value="alojamiento y desayuno">
AD<br>
<input type="radio" name="hotelregimen" value="media pension">
MP </font></strong><br>
<strong><font color="#B9DB7D">
<input type="radio" name="hotelregimen" value="pension completa">
PC<br>
<input type="radio" name="hotelregimen" value="todo incluido">
TI</font></strong> </p></td>
</tr>
<tr>
<td colspan="3" valign="top"><strong><font color="#B9DB7D">Situaci&oacute;n</font></strong>
<input name="hotelsituacion" type="text" value="" size="50" maxlength="50">
</td>
</tr>
<tr>
<td colspan="3" valign="top"><strong><font color="#B9DB7D">Alojamiento</font></strong>
<input name="hotelalojamiento" type="text" size="50" maxlength="50"> </td>
</tr>
<tr>
<td colspan="3" valign="top"><strong><font color="#B9DB7D">Restauraci&oacute;n
</font></strong> <input name="hotelrestauracion" type="text" size="50" maxlength="50"></td>
</tr>
<tr>
<td colspan="3" valign="top"><strong><font color="#B9DB7D">Instalaci&oacute;n
y Servicios </font></strong> <input name="hotelservicios" type="text" size="50" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" valign="top"><strong><font color="#B9DB7D">Caracter&iacute;sticas
</font></strong> <input name="hotelcaracteristicas" type="text" size="50" maxlength="50">
</td>
<td valign="top"> <div align="right">
<input type="submit" value="Enviar Datos">
</div></td>
</tr>
<tr>
<td colspan="2" valign="top"><font color="#B9DB7D"><strong>Observaciones
</strong></font> <input name="observaciones" type="text" value="" size="50" maxlength="50"></td>
<td valign="top"> <div align="right">
<input type="reset" value="Borrar Datos">
</div></td>
</tr>
</table>
</FORM>
<% END IF %>
</BODY>
</HTML>


Y de antemano.... muchisimas gracias por todo

Última edición por AlZuwaga; 20/06/2003 a las 14:38
  #2 (permalink)  
Antiguo 20/06/2003, 14:19
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
pon la sentencia sql y si puedes los campos con su tipo de datos
__________________
Manual de ASP Avanzado ;-)
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 14:25.