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

Error al comprobar caracteres exactos

Estas en el tema de Error al comprobar caracteres exactos en el foro de ASP Clásico en Foros del Web. Hola, intento comprobar que son exactamente iguales username y password con lo que esta almacenado en la base de datos, utilizando el comando StrComp: <%sql ...
  #1 (permalink)  
Antiguo 12/12/2002, 16:34
 
Fecha de Ingreso: noviembre-2002
Mensajes: 133
Antigüedad: 21 años, 7 meses
Puntos: 0
Error al comprobar caracteres exactos

Hola, intento comprobar que son exactamente iguales username y password con lo que esta
almacenado en la base de datos, utilizando el comando StrComp:

<%sql = "SELECT username FROM users WHERE username = '" & username & "' AND password = '" & password & "'"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.Open sql, conn, 3, 3

If (not rsUser.BOF) and (not rsUser.EOF) and sqlflag <> True then
If StrComp(username, rsUser("username")) = False AND StrComp(password, rsUser("password")) = False then
Session("username") = rsUser("username")
rsUser.close
set rsUser = nothing
conn.close
set conn = nothing
end if
end if

rsUser.close
set rsUser = nothing
conn.close
set conn = nothing%>


Sin embargo, me da el siguiente error:
Tipo de error:
ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.


Gracias por la ayuda
  #2 (permalink)  
Antiguo 12/12/2002, 19:00
Avatar de g_susdaniel  
Fecha de Ingreso: mayo-2001
Ubicación: Frente al Monitor :þ
Mensajes: 995
Antigüedad: 23 años, 1 mes
Puntos: 0
Exclamación

Errores:
Cita:
ADODB.Recordset error '800a0cc1' - No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido

Eso es debido a que estás intentando acceder a un campo de tu Recordset que no existe ya sea por un descuido en la programación o por un error ortográfico (muy común en mi =)

Suponiendo el SQL "SELECT campo1, campo2, campo3 FROM Tabla", se presentaría el error al hacer, por ejemplo, Response.Write(Recordset("campoInexistente")) o Response.Write(Recordset("3")) -en donde 'campoInexistente' es el NOMBRE de un campo que no existe y '3' sería la posición ORDINAL del cuarto campo-

Una nota final. El campo puede realmente existir en la tabla de la base de datos, pero si éste no es explícitamente llamado en la SQL -ya sea por su nombre o con el '*' (todo)-, para ASP no existe dentro del Recordset
FAQS DEL WEB
__________________
No, no no... no hay firma...
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:51.