• Martes 30 de Abril de 2024, 02:59

Autor Tema:  Re: Problemas con el manejo y acceso a base de datos access  (Leído 2293 veces)

manufer

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
    • http://www.manusoftar.com.ar
Re: Problemas con el manejo y acceso a base de datos access
« en: Lunes 20 de Mayo de 2002, 18:33 »
0
Mi problema es el siguiente:
tengo una base de datos en http://www.manusoftar.com.ar/usuarios/usuarios.mdb

bien, para registrarte en mi página tenés que llenar un formulario que te manda un mail con un link para confirmar tu dirección y completar el trámite. Hasta este punto va todo bien. ahora, caundo apretas el link que es suponiendo que el nick que elegiste es manufer(el mío) y la clave es...: 552, y la pregunta por si te olvidas la clave es:¿cual es el nombre de mi perro? y la respuesta es Fido:

http://www.manusoftar.com.ar/finalizar_ ... &pregunta=¿cual%20%es%20%el%20%nombre%20%de%20%mi%20%perro?&respuesta=Fido

bien hasta acá sigue todo bien; después de esto rescato los valores mediante QueryString.
y lo que quiero hacer es que el asp se fije si ese nombre de usuario ya existe, si es así lo avisa y no pasa más nada, pero de lo contrario lo agrega a mi base de datos como un nuevo registro en la tabla existente.

El problema es que intenta hacerlo de cualquier forma y además cuando reviso la base, esta está vacía(solo tiene el primer renglón que lo puse desde el rígido cuando la creé).

Acá va el código por si sirve para que alguien me pueda ayudar:

<%
on error resume next
dim user, pass, pregunta, respuesta, oConn
'hacemos toda la conexion a la BD.

'Guardamos los datos del Form en variables.
user= server.QuerySring("nickname")
pass= server.QueryString("password")
pregunta= server.QueryString("pregunta")
respuesta= server.QueryString("respuesta")
'Conectamos a nuestra BD.
Set oConn = Server.CreateObject ("ADODB.Connection")
Set RS = Server.CreateObject ("ADODB.RecordSet")
oConn.Open " DSN=http://www.manusoftar.com.ar/usuarios/usuarios.mdb"
'Seleccionamos de la tabla solo los registros que concuerden con el usuario del Form.
sql = "SELECT * FROM  tabla1 WHERE Usuario="'&user&'""
RS.Open sql, oConn, 1, 1
'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el usuario.
If RS.BOF then
Response.Write "<BR>El nombre de usuario solicitado se encuentra disponible, en unos momentos se actualizarán y registraran!! aguarde por favor"
'Hago el INSERT, creando un nuevo registro.
oConn.execute "INSERT INTO tabla1(Usuario,Clave,Pregunta,Respuesta) VALUES("'&user&'","'&pass&'","'&pregunta&'","'&respuesta&'")"
oConn.Close
response.write "<BR>El registro ha sido terminado con exito "
Set oConn = nothing
'Si el campo de la tabla es igual a nuestra variable, estas logueado.
ElseIf RS.Fields("Usuario") = "'&user&'" then
Response.Write "El nombre de usuario solicitado ya está en uso por otra persona. Lo redireccionaré nuevamente al formulario."
response.redirect "http://www.manusoftar.com.ar/publicite.htm"
End If
'Limpiamos y cerramos.
RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing


%>

Tabién probe con if RS.EOF y tampoco funcionó.

Si alguien piesa que se puede reemplazar este código con otro que si funcione le agradecería que me lo comunicara mediante este foro o por mail a : manufer@fibertel.com.ar

Desde ya muchas gracias!!

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Problemas con el manejo y acceso a base de datos access
« Respuesta #1 en: Miércoles 29 de Mayo de 2002, 11:06 »
0
Por lo que he observado en tu código la consulta sql que utilizas para comprobar si el usuario existe esta mal.
Esta es tu consulta:
sql = "SELECT * FROM tabla1 WHERE Usuario="'&user&'""
Tienes que utilizar el like para comprobar cadenas no puedes utilizar un igual para comparar dos cadenas.
La consulta quedaria de la siguiente forma:
sql = "SELECT * FROM tabla1 WHERE Usuario LIKE '" & user & "'"
RS.Open sql, oConn, 1, 1
Luego es simplemente con un If. Seria:
If Not RS.EOF
'Es que ya existe en la base de datod por lo tanto le redireccionas a la pagina que quieras
Else
'Le introduces en la base de datos
oConn.execute ("INSERT INTO tabla1(Usuario,Clave,Pregunta,Respuesta) VALUES("'&user&'","'&pass&'","'&pregunta&'","'&respuesta&'")" )

Espero q te funcione con lo que te he dicho sino avisame y te paso el codigo entero de como hacerlo.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

cuastecomate

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
    • http://ciam.ucol.mx
Problemas con el manejo y acceso a base de datos access con
« Respuesta #2 en: Lunes 17 de Junio de 2002, 00:12 »
0
Cuando pones esto seguro jala??

user= server.QuerySring("nickname")
pass= server.QueryString("password")
pregunta= server.QueryString("pregunta")
respuesta= server.QueryString("respuesta")


porque segun yo recibes con un REQUEST.QUERYSTRING("BLABLA")
no con SERVER.