Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
Smile Login en delphi

Hola amigos nuevamente por aqui, buscando ayuda nesecito hacer un Login para el ingreso a una aplicacion con base de datos firebird he probado varios metodos y no funciona, la base de datos es firebird y consta asi.


Código SQL [-]
CREATE TABLE USUARIO
(
  CODUSUARIO Integer NOT NULL,
  NOMBRE Char(50),
  DIRECCION Char(70),
  USUARIO Char(20) NOT NULL,
  CLAVE Char(20) NOT NULL,
  PRIMARY KEY (CODUSUARIO)
);





lo que quiero es validar el Usuario y clave para luego ingresar al sistema he estado probando este codigo con la ayuda de unos Tutoriales
pero no funciona.
la consulta del IBQuery es esta

Código SQL [-]
select CODUSUARIO, USUARIO, CLAVE from USUARIO WHERE CODUSUARIO=:USER

Código Delphi [-]
begin
frmConeccion.Login.Params.ParamByName('USER').Value:= txt_usuario.Text;
frmConeccion.Login.Active:= True;
If frmConeccion.Login.RecordCount < 1 then
begin
  Cuenta := Cuenta + 1;
  Application.MessageBox('Usuario no encontrado', 'Atención', MB_ICONINFORMATION or MB_OK);
  txt_usuario.Text := '';
  txt_clave.Text := '';
  frmConeccion.Login.Active := False;
  If Cuenta = 3 then Close;
end
 else
 If txt_clave.Text = frmConeccion.LoginCLAVE.AsString then
 Begin
   frmPrincipal.Show;
   frmConeccion.Login.Active := False;
   frmLogin.Visible:= False;
   end
   else
   begin
   Cuenta := Cuenta + 1;
   Application.MessageBox('Clave incorrecta, intente de nuevo', 'Atención', MB_ICONERROR or MB_OK);
   txt_clave.Text := '';
   frmConeccion.Login.Active := False;
   If Cuenta = 3 then Close;
   end;



a ver si me dan una manito se lo agradecere.

Última edición por Casimiro Notevi fecha: 04-04-2012 a las 10:37:12.
Responder Con Cita
  #2  
Antiguo 04-04-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,

¿pero donde falla?, ¿cual es el error que te lanza?, haz una ejecución paso a paso y ve comprobando el valor de los objetos para saber si están rellenos adecuadamente o si rescatan bien la información de la tabla.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #3  
Antiguo 04-04-2012
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Primero, como dijo el compañero:
  • ¿Cuál es el error que te da?
  • ¿En qué línea?
Solo un detalle:
Estos campos creo que deberían ser de tipo VARCHAR.
  • USUARIO VARCHAR(20) NOT NULL,
  • CLAVE VARCHAR(20) NOT NULL,
De lo contrario se rellenaran con espacios hasta llegar a 20 caracteres y la comparación podría fallar.
'ADMIN____________________' <> 'ADMIN'
Responder Con Cita
  #4  
Antiguo 04-04-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
tenias razon duilioisola

el error era que la clave era incorrecta,

pero gracias a tu observacion he cambiado "CHAR" por "VARCHAR" y funciona muy bien

Gracias mi estimado duilioisola por tu aporte, el problema està resuelto.
Responder Con Cita
  #5  
Antiguo 04-04-2012
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Ese metodo de login es inseguro. Se presta para una inyección de sql:

http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL



Ademas, es mejor guardar las claves como un hash, e implementar el login con un procedimiento almacenado, o en su defecto, usar sustitución de parámetros:

http://mc-computing.com/databases/De...tml#parameters

Cita:
SELECT * FROM MATABLE
WHERE MT_ID IN (:MYPARAM)

Al menos hasta aqui es un buen primer intento para una app local, monousuario. Si es una app web o la BD se expone en una red amplia es mejor implementar un esquema mas seguro...
__________________
El malabarista.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
login delphi rcd_a Varios 2 27-01-2012 18:13:32
Como hacer un Login en Delphi php kurono Varios 0 29-06-2011 04:26:08
Login delPhi 7 Yensis22 C++ Builder 2 10-06-2008 16:05:38
Login-Delphi TKW04 OOP 39 22-08-2007 05:08:55
Login via base de datos en Delphi eudy.net Conexión con bases de datos 1 08-06-2007 07:28:14


La franja horaria es GMT +2. Ahora son las 06:09:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi