Ver Mensaje Individual
  #2  
Antiguo 26-07-2007
mamaro mamaro is offline
Miembro
 
Registrado: mar 2004
Posts: 79
Reputación: 21
mamaro Va por buen camino
Hola

Para empeza te diré que entiendo muy bien tu pregunta, yo utilizo los componentes Zeos con bases de datos Firebird hace bastante tiempo .. y sí es cierto ... la documentación es bastante pobre ...

Creo que lo que quieres hacer es:
1) Guardar los usuarios y contraseñas dentro de la base de datos.
2) Dependiendo del usuario y clave que ingresa el usuario en un formulario darle acceso a cierto lugares.

¿es así?

Si es así, supongamos que tienes:
1) Un formulario con el nombre FLogIn una caja de edición (edUsuario), y una caja de edición con máscara para la clave (edClave).
2) Un DataModule (que podríamos llamarle DM), con un TZConnection (lo llamamos conexion), y un TZReadOnlyQuery (que llamaremos qValida). En connection del qValida se pone Conexion, y en SQL, lo siguiente:

Código SQL [-]
Select *
from Usuarios
where (usuario= :NOMBRE )
and (clave= :PASS )

(suponiendo que tengas una tabla Usuarios, con campos usuario, y clave ... cada uno adaptarlo a sus necesidades)

IMPORTANTE: Los componentes Zeos tienen un BUG con los parámetros, éstos deben tener un espacio adelante y otro atrás para que funcionen bien (ésto no lo leí en ningún lado ... fué más bien a fuerza de darme la cabeza contra la pared).


En el DataModule:

Código Delphi [-]
...
  public
    function Validar(Usuario,Clave:string):boolean;
  end;

...

function Validar(Usuario,Clave:string):boolean;
begin
  conexion.user:='usuarioadministrador';
  conexion.password:='clavedeadministrador';
  conexion.connect;
  qValida.close; // nos aseguramos que la consult esté cerrada
  qValida.ParamByName('NOMBRE').asstring:=Usuario;
  qValida.ParamByName('PASS').asstring:=Clave;
  qValida.open;

  // aquí van las instrucciones con las que levantás los permisos
  // o lo que sea que quieras hacer

end;

En el FLogIn (por ejemplo):

1) Incluyes el DataModule en la cláusula uses:
Código Delphi [-]
uses ..., DM;

2) En el evento onClick del botón OK:
Código Delphi [-]
procedure TFLogIn.ButtonOKClick(Sender: TObject);
begin
  if (DM.Validar(edUsuario.text,edClave.text)) then 
  begin
    // aquí el usuario está validado, etc....
  end;
end;

Saludos y espero te sirva
Responder Con Cita