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

Demasiados parámetros - ¿Donde está el error?

Estas en el tema de Demasiados parámetros - ¿Donde está el error? en el foro de ASP Clásico en Foros del Web. Saludos al foro: Lo que la pagina "ofertas.asp" tiene que hacer es lo siguiente: Recoge el valor del campo claseoferta de un recordset y lo ...
  #1 (permalink)  
Antiguo 11/07/2003, 06:13
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Demasiados parámetros - ¿Donde está el error?

Saludos al foro:
Lo que la pagina "ofertas.asp" tiene que hacer es lo siguiente:
Recoge el valor del campo claseoferta de un recordset y lo muestra dentro de un formulario, de forma que al pulsar sobre el botón "Ir a" vaya a la pagina "generartabla.asp".

La página generartabla.asp debe lanzar un listado filtrado por el valor del campo claseoferta; pero me produce un error que es el siguiente:


Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/generartabla.asp, line 54


Les paso el código de las dos páginas por si ven el error, porque yo no soy capaz de verlo.

------------------------------------------
Codigo de la página ofertas.asp:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Escoja su clase de oferta</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<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);

function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_jumpMenuGo(selName,targ,restore){ //v3.0
var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}
//-->
</script>

</head>

<body>
<!--Incluimos el fichero de constantes-->
<!--#INCLUDE file="ADOVBS.inc"-->
<%
'Para conexión a dsn arsys con ACCESS
'Set Ob_Conn= Server.CreateObject("ADODB.Connection")
'Set Ob_Command= Server.CreateObject("ADODB.Command")
'Ob_Conn.open "DSN=clubviajesoferta.com.access"
'Ob_Command.ActiveConnection=Ob_Conn
'Ob_Command.CommandType=adCmdText
'Ob_Command.CommandText= "SELECT * FROM ofertas WHERE id = " & Request.QueryString("id")"
'Set Ob_RS=Ob_Command.Execute ()
'Termina aquí la conexion a dsn arsys con ACCESS

'Para conexion a ODBC local
Set Ob_Conn = Server.CreateObject("ADODB.Connection")
Set Ob_Command= Server.CreateObject("ADODB.Command")
Ob_Conn.open "cvo_odbc"
' Abrimos la tabla, declaramos que conexión esta abierta, tipo de cursor, tipo de cerrojo, y opciones
Ob_Command.ActiveConnection=Ob_Conn
Ob_Command.CommandType=adCmdText
Ob_Command.CommandText= "SELECT DISTINCT claseoferta FROM ofertas"
Set Ob_RS=Ob_Command.Execute ()
%>
Estos son las clases de ofertas que tiene a su disposición:
Haga click sobre el botón "Ir A" correspondiente para ver el contenido de dichas ofertas
<% do until Ob_RS.eof %>

<form method="post" action="generartabla.asp?id=<%=Ob_RS("claseoferta" )%>">
<%=Ob_RS("claseoferta")%>
<input type="hidden" name="campodebusqueda" id="campodebusqueda" value="<%=Ob_RS("claseoferta")%>">
<input type="submit" value="Ir A">
</form>
<%Ob_RS.movenext%>
<% loop %>
<%Ob_RS.close
Ob_Conn.close%>

</body>
</html>
------------------------------------------


Codigo de la página "generartabla.asp"


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%response.Expires=0%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<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>

<SCRIPT LANGUAGE="JavaScript">
<!--
function AbrirVentana (theURL, winName, features)
{
window.open (theURL, winName, features);
}
-->
</SCRIPT>


</head>

<body background="images/frame_izqda_con_opacidad.jpg" leftmargin="0" topmargin="25" marginwidth="0" marginheight="0">
<!--Incluimos el fichero de constantes-->
<p>
<!--#INCLUDE file="ADOVBS.inc"-->
<%
'Para conexión a dsn arsys con ACCESS
'Set Ob_Conn= Server.CreateObject("ADODB.Connection")
'Set Ob_Command= Server.CreateObject("ADODB.Command")
'Ob_Conn.open "DSN=clubviajesoferta.com.access"
'Ob_Command.ActiveConnection=Ob_Conn
'Ob_Command.CommandType=adCmdText
'Ob_Command.CommandText= "SELECT * FROM ofertas"
'Set Ob_RS=Ob_Command.Execute ()
'Termina aquí la conexion a dsn arsys con ACCESS

'Para conexion a ODBC local
Set Ob_Conn = Server.CreateObject("ADODB.Connection")
Set Ob_Command= Server.CreateObject("ADODB.Command")
Ob_Conn.open "cvo_odbc"
' Abrimos la tabla, declaramos que conexión esta abierta, tipo de cursor, tipo de cerrojo, y opciones
Ob_Command.ActiveConnection=Ob_Conn
Ob_Command.CommandType=adCmdText
'Ob_Command.CommandText= "SELECT * FROM ofertas"
Ob_Command.CommandText= "Select * From ofertas WHERE id = " & Request.QueryString("id")
Set Ob_RS=Ob_Command.Execute ()
%>
<table width="100%" border="0" cellspacing="0" cellpadding="4">
<tr bgcolor="#e0e0e0">
<td width="8%"> <div align="left"><font color="#003399" size="1" face="Arial, Helvetica, sans-serif">Destino</font></div></td>
<td width="5%"> <div align="left"><font color="#003399" size="1" face="Arial, Helvetica, sans-serif">Zona</font></div></td>
<td width="23%"> <div align="left"><font color="#003399" size="1" face="Arial, Helvetica, sans-serif">Salidas</font></div></td>
<td width="17%"> <div align="left"><font color="#003399" size="1" face="Arial, Helvetica, sans-serif">Fecha
de Salida</font></div></td>
<td width="19%"> <div align="left"><font color="#003399" size="1" face="Arial, Helvetica, sans-serif">Hotel</font></div></td>
<td width="3%"><font color="#003399" size="1" face="Arial, Helvetica, sans-serif">Categor&iacute;a</font></td>
<td width="4%"><div align="left"><font size="2"><font size="1"><font size="1"><font face="Arial, Helvetica, sans-serif"></font></font></font></font></div></td>
<td width="12%"> <div align="left"><font color="#003399" size="1" face="Arial, Helvetica, sans-serif">Precio</font></div></td>
<td width="13%"> <div align="left"><font color="#003399" size="1" face="Arial, Helvetica, sans-serif">Regimen</font></div></td>
</tr>
<% do until ob_RS.eof %>
<tr align="left" valign="top" bgcolor="#ebf3eb">
<td>
<div align="left"><font size="1" face="Arial, Helvetica, sans-serif"><%=Ob_RS("destino")%></font></div></td>
<td>
<div align="left"><font size="1" face="Arial, Helvetica, sans-serif"><%=Ob_RS("Zona")%></font></div></td>
<td>
<div align="left"><font size="1" face="Arial, Helvetica, sans-serif"><%=Ob_RS("salidas")%></font></div></td>
<td>
<div align="left"><font size="1" face="Arial, Helvetica, sans-serif"><%=Ob_RS("fechasalida")%></font></div></td>
<td>
<div align="left">
<p><font size="1" face="Arial, Helvetica, sans-serif"><%=Ob_RS("hotelnombre")%> </font></div></td>
<td><font size="1" face="Arial, Helvetica, sans-serif"><%=Ob_RS("hotelcategoria")%></font></td>
<td><font size="1" face="Arial, Helvetica, sans-serif"><a href="generartabla.asp"
onClick="AbrirVentana('ficha_hotel.asp?id=<%=Ob_RS ("id")%>', '', 'top=112, left=165, width=627, height=350, resizable=0')" shape="rect" >
<img src="images/iconohotel.gif" alt="Informaci&oacute;n sobre el hotel" width="22" height="22"></a>
</font>
<td>
<div align="left"><font size="1" face="Arial, Helvetica, sans-serif"><%=Ob_RS("hotelprecio")%> &euro;</font></div></td>
<td width="16%">
<div align="left"><font size="1" face="Arial, Helvetica, sans-serif"><%=Ob_RS("hotelregimen")%></font></div></td>
</tr>
<% Ob_RS.movenext
loop
Ob_RS.close
Ob_Conn.close
%>
</table>
</body>
</html>
--------------------

Muchas gracias de antemano......
  #2 (permalink)  
Antiguo 11/07/2003, 06:38
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Cita:
Too few parameters. Expected 1
--> POCOS PARAMETROS, SE ESPERABA UNO!!!! Es decir, que cuando tira a hacer la búsqueda, no pilla el parametro que le estas intentando pasar. Comprueba si se lo pasas bien. Como se lo pasas desde la página ofertas.asp, por post o por get??? si es post para recoger el valor tienes que poner Request.Form("campo") y si es por Get (o default) tiene que ser Request.Querystring("campo") Lo dicho, mira a ver con esas dos si la recoge y sacatelo por pantalla para verlo, después usa aquella con la que te pille el parametro y se lo pones a la búsqueda.

P.D.: He mirao tu código y la sentencia SQL que usas es "SELECT * FROM ofertas WHERE id = " & Request.QueryString("id")"

Pero debería ser "SELECT * FROM ofertas WHERE id = " & Request.form ("id")" por que en la página anterior llamas a la 2ª página con el metodo Post

Espero que con eso te funcione, salu2
__________________
Vayamos por Partes :: Jack el Destripador
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:35.