Máximo de intentos en logeo

Lo que deseo hacer el poner un limite de intentos al usuario que se esta logeando, espero me puedas ayudar. Tengo este código pero mi contador no pasa de uno y no se cumple la condición.
Int  contador // variable para almacenar el maximo de errores
int row
select count(idusuario) into :row From Cat_Usuario where Nombre_usuario=:sle_usuario.text and contrasenia=:sle_contra.text
USING SQLCA;
IF row>0 then
    select idusuario into :idusuario
    From Cat_Usuario
    where Nombre_usuario=:sle_usuario.text and contrasenia=:sle_contra.text USING SQLCA;
    close(iniciosesion)
    open(principal)
    open(cargando)
   ELSE
        contador ++
         if contador < 3 then
            messagebox("ERROR","Datos Ingresados Incorrectos, intento Nº : " + string(contador), information!)
              sle_usuario.setfocus( )
        end if
       if contador>=3  Then
            // Mostraremos un mensaje
            MessageBox("Mensaje", "A excedido el limite de intentos permitivos", StopSign!)
                // Cerramos toda la aplicacion
            Halt Close
         End If
End If

1 respuesta

Respuesta
2
Disculpa por la demora, estuve de vacaciones y no pude ingresar a la comunidad... Bien vi tu programación y todo está bien, lo único que debes hacer ahí es declarar, en tu caso tu variable contador, como instancia, si te fijas estás declarando al inicio de tu código, entonces traslada esa declaración a Instance Variables y listo con eso te debe funcionar. Por ejemplo el código que yo uso generalmente es la siguiente:
string clave, login, estado
select usuario, password, activo
into :login, :clave, :estado
from usuario
where usuario = :sle_login.text and password = :sle_contra.text and activo = "SI";
if sle_login.text<>"" and sle_contra.text <>"" then
if sle_contra.text = clave then
open(w_principal)
close(w_inicio)
else
op = op + 1
messagebox("Disculpe","Usted no tiene acceso al sistema!!!",stopsign!)
sle_login.text = ""
sle_contra.text = ""
sle_login.setfocus( )
if op = 3 then
messagebox("Aviso","Usted excedió el número de intentos")
Halt close
end if
end if
else
messagebox("Aviso","Por favor ingrese sus datos!!!")
sle_login.setfocus( )
end if
Entonces lo que hago aquí es, declarar la variable op en Instance Variables, o sea pongo:
int op
Bueno amigo eso es todo... cualquier cosita no dudes en consultar, como te dije al inicio disculpa por la demora porque estuve de vacaciones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas