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

Error "Two few parameters-expected 1" en consulta SQL?

Estas en el tema de Error "Two few parameters-expected 1" en consulta SQL? en el foro de ASP Clásico en Foros del Web. Saludos al foro: Tengo una pagina para validar un nombre de usuario y una contraseña y me da este error cuando cubro el campo login ...
  #1 (permalink)  
Antiguo 12/07/2003, 09:24
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 10 meses
Puntos: 0
Error "Two few parameters-expected 1" en consulta SQL?

Saludos al foro:
Tengo una pagina para validar un nombre de usuario y una contraseña y me da este error cuando cubro el campo login y el campo password que son dos campos de texto y envio el formulario.
La base de datos se llama: ofertas y la tabla: usuarios
Lo que no veo es por qué me dice que no le estoy pasando parámetros.

¿Podeis echarme una mano?.

Select * from usuarios WHERE usuario='e' AND password= 'e'
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

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

/login.asp, line 64

Esta es la cadena de conexión que utilizo:

Set Ob_Conn = Server.CreateObject("ADODB.Connection")
Set Ob_RS = Server.CreateObject("ADODB.Recordset")
' Abrimos el ODBC
Ob_Conn.open "cvo_odbc"
sqltxt="Select * from usuarios WHERE usuario='"&usuario&"' AND password= '"&password&"'"
response.write sqltxt
Ob_RS.Open sqltxt, Ob_conn

Gracias de antemano.
  #2 (permalink)  
Antiguo 12/07/2003, 13:25
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 24 años, 1 mes
Puntos: 2
pues no se, acabo de probar tu codigo con los datos del nombre de la tabla y la base de datos que has dado y me funciona bien. Lo unico que se me ocurre es que en la tabla "usuarios" hayas escrito mal los campos "usuario" o "password"



ToKaTa.
__________________

"Si pudieras volver.....¿.lo harias?"
  #3 (permalink)  
Antiguo 12/07/2003, 15:05
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 10 meses
Puntos: 0
Saludos de nuevo:
Pues ahora si que estoy flipando; a ver voy a pasar el codigo del página entero. A ver si ahora funciona pq el error que da parece de la sentencia SQL pero si a ti te funciona ya no se que puede pasar


codigo pagina login.asp


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%if request.form("usuario")="" then%>
<form method="POST" action="login.asp">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align="center"><%=request.querystring("msg")%></p>
<div align="center">
<center>
<table border="0" width="50%" bgcolor="#F2F2F2">
<tr>
<td width="100%" colspan="2" bgcolor="#0000FF">
<p align="center"><font color="#FFFFFF">Login</font></td>
</tr>
<tr>
<td width="50%">Usuario:</td>
<td width="50%"><input type="text" name="usuario" size="20"></td></tr><tr>
<td width="50%">Password: </td><td width="50%"> <input type="password" name="password" size="20"></td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center"><input type="submit" value="Enviar" name="B1"></td>
</tr>
</table>
</center>
</div>
</form>


<%else
'eliminamos las posibles comillas de la entrada
'para evitar la introducción de sentencias SQL
usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")

'Para conexión a dsn arsys con ACCESS
'set Ob_Conn= Server.CreateObject("ADODB.Connection")
'Ob_Conn.ConnectionString = "DSN=clubviajesoferta.com.access"
'Ob_Conn.open
'Set Ob_RS=Server.CreateObject("ADODB.Recordset")
'Ob_RS.activeconnection=Ob_Conn
'Ob_RS.source="xxxxx"
'Ob_RS.Locktype = adLockOptimistic
'Ob_RS.CursorType = adOpenDinamic
'Ob_RS.open
'Termina aquí la conexion a dsn arsys con ACCESS

'Para conexion a ODBC local
Set Ob_Conn = Server.CreateObject("ADODB.Connection")
Set Ob_RS = Server.CreateObject("ADODB.Recordset")
' Abrimos el ODBC
Ob_Conn.open "cvo_odbc"
sqltxt="Select * from usuarios WHERE usuario='"&usuario&"' AND password= '"&password&"'"
response.write sqltxt
Ob_RS.Open sqltxt, Ob_conn


if not Ob_RS.eof then
' nos ha devuelto un registro, ahora miraremos si es valido
' con ello evitamos el ataque típico SQL
if Ob_RS("usuario")=usuario and Ob_RS("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("autorizacion")=1
response.redirect "socios.asp"
end if
else
session("autorizacion")=-1
end if
Ob_RS.close
set Ob_RS=nothing
Ob_conn.close
set Ob_conn=nothing
if session("autorizacion")=-1 or session("autorizacion")="" then
' no hemos encontrado el registro' eso indica que el usuario y/o la password son erroneos
response.redirect "login.asp?msg=Usuario o password incorrecta"
end if

end if%>
</body>
</html>

Gracias por todo
  #4 (permalink)  
Antiguo 13/07/2003, 06:16
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 24 años, 1 mes
Puntos: 2
no se, no creo que tenga mucho que ver (auqnue tenias algunas cosillas que no se ya si irian bien......), pero cambia la parte asp de tu script por esta:


Código:
<%else

	usuario=replace(request.form("usuario"),"'","")
	password=replace(request.form("password"),"'","")

	Set conexion = Server.CreateObject("ADODB.Connection")
	conexion.connectionString = "cvo_odbc"
	conexion.open
	
	Set rs = Server.CreateObject("ADODB.Recordset")
	rs.cursorType = 3
	
	sqltxt = "Select * from usuarios WHERE usuario='"&usuario&"' AND password= '"&password&"'"
	rs.Open sqltxt, conexion


	if (rs.recordCount > 0) then

		if ((rs.fields("usuario")=usuario) and (rs.fields("password")=password)) then

			session("autorizacion") = 1
			response.redirect "socios.asp"
			
		end if
	else
		session("autorizacion") = -1
	end if


	if ((CStr(session("autorizacion")) = "-1") or (session("autorizacion")="")) then
		response.redirect "login.asp?msg=Usuario o password incorrecta"
	end if

end if

%>

Y si no te va, seguro seguro seguro que en tu tabla de la base de datos has escrito bien los nombres de los campos "usuario" y "password"?????, no habras puesto "usario" o algo asi? (muy tipico, sino que me lo digan a mi ), echale un ojo otra vez, que te da tienes toda, toda, toda la pinta de ser ese.....y si esta bien...pues colega...me matas....por que a mi cambiando tu codigo asp por el que te pongo aqui, me va perfecto.....



Suerte!



ToKaTa.
__________________

"Si pudieras volver.....¿.lo harias?"
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 13:39.