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

Comprobar si el usuario ya existe en la bd

Estas en el tema de Comprobar si el usuario ya existe en la bd en el foro de ASP Clásico en Foros del Web. Hola amigos, como indica el título de este post, estoy "intentando" comprobar si el usuario ya existe en la bd, en caso de que exista, ...
  #1 (permalink)  
Antiguo 03/11/2004, 13:48
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Comprobar si el usuario ya existe en la bd

Hola amigos, como indica el título de este post, estoy "intentando" comprobar si el usuario ya existe en la bd,

en caso de que exista, pues no se hace el insert en la bd y se cierra la conexión. El caso es que no acabo de pulirlo, miren ustedes que más entienden de esto que yo

Código PHP:
'''' AcÁ Creamos la conexión y el recorset (Rs)

'decir que la bd tiene el campo "idusuario" y "pass" por el que quiero realizar la SQL y comprobar si existe

rs.open "SELECT * FROM Files WHERE Files.Idusuario = '"+session("
Idusuario") & "' And Files.pass = '" & Session("pass") & "'",connStr,2,2

'
=======================================================================
        
'Comprobamos que no exista un registro duplicado, así que lo insertamos
        '
=======================================================================
        If  
rs.BOF AND rs.EOF Then 
                
         A meter datos por un tubo
......

        
rs.AddNew
          rs
("File Name") = Nombre
          rs
("File Apellidos") = Apellidos
          rs
("File Ciudad") = Ciudad

        rs
.Update
        
        rs
.Close
        Set rs 
Nothing
        
      Response
.Write "<font color=""blue"">Los datos se ha enviado correctamente..."
      
Response.Write "</font>"

Else

Response.Write "Solo puedes realizar una inscripción."
    
Response.End 

End 
If 
Bueno, esto es todo, ¿en que me estoy equivocando???, me sigue metiendo siempre y siempre los mismo datos repes, no comprueba el If

bueno, nos vemos pronto (espero)

Gracias de antemano
__________________

***Aprendiz de todo y maestro de nada***
  #2 (permalink)  
Antiguo 03/11/2004, 13:58
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Bueno, me imagino que si cambias tu cadena de adUseServer a adUseClient se arreglaría el código: ...,connStr,2,3.

Aunque tambien podrías meter el cursor a un arrglo con GetRows y verificar el Ubound del mismo.

y solo como un comentario, ¿Si ya es EOF, no es reduntante preguntar for el BOF?, digo, no es que no funcione, pero si preguntar por rs.EOF da TRUE, ¿no es suficiente?

Saludos
  #3 (permalink)  
Antiguo 03/11/2004, 14:18
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 22 años, 5 meses
Puntos: 0
Pues hombre, yo ahí lo que veo es que haces el "check" por idusuario, donde idusuario es un objeto de tipo Session.

Y como cada vez que se inicia una sesión, ese string va a ser diferente, pues aunque meta dos veces el mismo nombre, la string de sesión será diferente y te contará.

Yo creo que deberías hacer algo como
"SELECT * FROM TABLA WHERE FILE NAME='" & Request.Form("nombre")&"'"
set mr = conexion.execute(strSQL)
if mr.eof or mr.bof
-metes datos
else
-mensaje de nombre ya cogido
end if

Algo así ¿no?
__________________
Tu portal de manga y anime.
  #4 (permalink)  
Antiguo 04/11/2004, 04:38
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
amigos, gracias por colaborar, voy a probar con ambas opciones, a ver que tal.

nos vemos pronto
__________________

***Aprendiz de todo y maestro de nada***
  #5 (permalink)  
Antiguo 08/11/2004, 12:04
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Pues nada amigos, por una misteriosa razón, no me funciona el filtro para comprobar si el registro ya se encuentra en la bd. he probado de la siguiente manera.

'decir que la bd tiene el campo "idusuario" y "pass" por el que quiero realizar la SQL y comprobar si existe

rs.open "SELECT * FROM Files WHERE Files.Idusuario = '"+session("Idusuario") & "' And Files.pass = '" & Session("pass") & "'",connStr,2,3

'Comprobamos que no exista un registro duplicado, así que lo insertamos
'=============================================== ========================
If rs.BOF Then

' A meter datos por un tubo......

rs.AddNew
rs("File Name") = Nombre
rs("File Apellidos") = Apellidos
rs("File Ciudad") = Ciudad


rs.Update

rs.Close
Set rs = Nothing

Response.Write "<font color=""blue"">Los datos se ha enviado correctamente..."
Response.Write "</font>"

Else

Response.Write "Solo puedes realizar una inscripción."
Response.End
__________________

***Aprendiz de todo y maestro de nada***
  #6 (permalink)  
Antiguo 08/11/2004, 12:05
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Pues nada amigos, por una misteriosa razón, no me funciona el filtro para comprobar si el registro ya se encuentra en la bd. he probado de la siguiente manera.

'decir que la bd tiene el campo "idusuario" y "pass" por el que quiero realizar la SQL y comprobar si existe

rs.open "SELECT * FROM Files WHERE Files.Idusuario = '"+session("Idusuario") & "' And Files.pass = '" & Session("pass") & "'",connStr,2,3

'Comprobamos que no exista un registro duplicado, así que lo insertamos
'=============================================== ========================
If rs.BOF Then

' A meter datos por un tubo......

rs.AddNew
rs("File Name") = Nombre
rs("File Apellidos") = Apellidos
rs("File Ciudad") = Ciudad
rs("File Pass") = Pass
rs("File Idusuario") = Idusuario

rs.Update

rs.Close
Set rs = Nothing

Response.Write "<font color=""blue"">Los datos se ha enviado correctamente..."
Response.Write "</font>"

Else

Response.Write "Solo puedes realizar una inscripción."
Response.End


¿Que es lo que estoy haciendo mal???
¿por que sigo metiendo al mismo todas las veces que quiero????
__________________

***Aprendiz de todo y maestro de nada***

Última edición por epa2; 08/11/2004 a las 12:07
  #7 (permalink)  
Antiguo 08/11/2004, 19:51
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
así a simple vista debería funcionar. porqué no pruebas a comprobar que el recordset está vacío con rs. recordcount?
  #8 (permalink)  
Antiguo 09/11/2004, 05:18
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Hola de nuevo,

mira, he hecho lo siguiente....

registros = rs.RecordCount
Response.write "El número de registros es:" & registros
Response.End


y me devuelve un valor negativo -1, ¿por queeee????

cada vez entiendo menos esto
__________________

***Aprendiz de todo y maestro de nada***

Última edición por epa2; 09/11/2004 a las 06:36
  #9 (permalink)  
Antiguo 09/11/2004, 06:49
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Hola de nuevo, siguiendo haciendo pruebas, tengo esto....

`donde id es el nombre del campo autonumerico de la tabla

if Id.rs.RecorCount = 0 Then
Response.Write "la tabla esta vacia, debera ingresar el registro"
end if


' y ahora me dice que
Error de Microsoft VBScript en tiempo de ejecución error '800a01a8'

Se requiere un objeto: ''


jo,
__________________

***Aprendiz de todo y maestro de nada***
  #10 (permalink)  
Antiguo 09/11/2004, 08:07
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
has puesto id.rs.recordcount y sería solo rs.recordcount. en cuanto a recordcount, abre el rs con
"connStr,3,1"
  #11 (permalink)  
Antiguo 09/11/2004, 09:10
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
okis, voy a mirarlo ahora mismito.

un segundo
__________________

***Aprendiz de todo y maestro de nada***
  #12 (permalink)  
Antiguo 09/11/2004, 09:21
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Hola de nuevo, gracias por estar ahí y perdonar mi ignorancia

He probado a abrir el recorset con el "connStr,3,1" y me dice...

ADODB.Recordset error '800a0cb3'

El Recordset actual no admite actualizaciones. Puede ser una limitación del proveedor o del tipo de bloqueo seleccionado.


luego, tambien, probando he puesto....

if rs.RecorCount = 0 Then
Response.Write "la tabla esta vacia, debera ingresar el registro"
end if

y me sale ....


rror de Microsoft VBScript en tiempo de ejecución error '800a01b6'

El objeto no acepta esta propiedad o método: 'RecorCount'


pues ya ves, me parece que el servidor web me está jugando una mala pasada
__________________

***Aprendiz de todo y maestro de nada***
  #13 (permalink)  
Antiguo 09/11/2004, 09:27
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
RecorDCount, Epa2, RecordCount
  #14 (permalink)  
Antiguo 09/11/2004, 12:37
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
(no coment)

ahora os digo

Gracias por la paciencia
__________________

***Aprendiz de todo y maestro de nada***
  #15 (permalink)  
Antiguo 09/11/2004, 13:01
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Bueno, ya estoy aquí de nuevo, al final teneis razón, me dice que la tabla está vacia, he escrito lo siguiente (despues del gazapo gordo del recorCount "d")

if rs.RecordCount = 0 Then
Response.Write "la tabla esta vacia, debera ingresar el registro"
end if

registros = rs.RecordCount
Response.write "El número de registros es:" & registros
Response.End
__________________

***Aprendiz de todo y maestro de nada***
  #16 (permalink)  
Antiguo 09/11/2004, 13:02
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Bueno, ya estoy aquí de nuevo, al final teneis razón, me dice que la tabla está vacia, he escrito lo siguiente (despues del gazapo gordo del recorCount "d")

if rs.RecordCount = 0 Then
Response.Write "la tabla esta vacia, debera ingresar el registro"
end if

registros = rs.RecordCount
Response.write "El número de registros es:" & registros
Response.End

y me pinta en pantalla lo siguiente.....

a tabla esta vacia, debera ingresar el registro El número de registros es:0

¿pero como puede ser esto???

Abro el recordset con el "connStr,3,1"

siguiendo investigando, he decidido comentar la línea del Response.End para que siga el código ejecutandose y cuando llega a la línea de ...

rs.Addnew me dice...

ADODB.Recordset error '800a0cb3'

El Recordset actual no admite actualizaciones. Puede ser una limitación del proveedor o del tipo de bloqueo seleccionado.

¿Estoy abriendo mal el recorset???
__________________

***Aprendiz de todo y maestro de nada***

Última edición por epa2; 09/11/2004 a las 13:12
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:36.