Ver Mensaje Individual
  #3  
Antiguo 31-05-2016
Belen12 Belen12 is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 29
Reputación: 0
Belen12 Va por buen camino
Gracias

Cita:
Empezado por jeremiselxi Ver Mensaje
Buen día y Dios te bendiga mucho.

No sé cual base de datos estas utilizando, pero esto que quieres hacer del login, puedes hacerlo de dos maneras:

1) creas un usuario en la base de datos, luego das los permisos necesarios para la base de datos y de ahí en adelante, como ya tienes configurado cual tabla puede acceder mediante el componente tztable automáticamente podrá modificar esta tabla.

2) creas un usuario de esta aplicación: ejemplo si tu aplicación se llama ADM, creas un usuario ADMusers y le das acceso a la base de datos que contiene la tabla de cuentas. Luego creas una tabla llamada usuarios con los campos usuario, contraseña, nombre usuario etc. Creas un Tzconection y te conectas con este usuario al servidor de base de datos y a la base de datos. Posterior a esto, entonces usas un tzquery para hacer la conección a la tabla usuarios y si es el mismo que está en la base de datos, entonces entras al formulario de las cuentas, de lo contrario muestra un mensaje de que no puede acceder.


Un ejemplo de como te puedes conectar es:

Código Delphi [-]
//Usé un componente adoquery llamado "queryiniciarsession"

//botón conectar.


procedure TForm1_Form_Login_Principal.BitBtn1Click(Sender: TObject);
begin
if (txtusuario.Text='') or (txtpassword.Text='') then
    begin
      ShowMessage('Usuario y/o Contraseña Incorrecta');
    end
else
if (txtusuario.Text <>'') and (txtpassword.Text<>'') then
    begin

      form_tablas.queryiniciarsession.SQL.Clear;
      form_tablas.queryiniciarsession.SQL.add('select * from Usuarios where Usuario =:usu');
      form_tablas.queryiniciarsession.Parameters.ParamByName('usu').Value := txtusuario.Text;
      form_tablas.queryiniciarsession.Open;


      if (txtpassword.Text = form_tablas.queryiniciarsession.Fieldbyname('Password').Asstring) then
        begin

         

          // esto es para saber si el usuario tiene que cambiar la contraseña en el proximo inicio de sesión. 
          if form_tablas.queryiniciarsession.Fieldbyname('CambioProximaSession').Asstring = 'Si' then
           begin
               showmessage('Debes cambiar tu contraseña');
               form_cambiar_contrasena.show
            end
          else
          // esto es para saber si el usuario está bloqueado o inactivo.
          if form_tablas.queryiniciarsession.Fieldbyname('Estado').Asstring = 'Inactivo' then
           begin
               showmessage('Favor contactar al Administrador del Sistema ya que este usuario está inactivo.');
            end

          else
            begin
           // Si todo está bien muestra bienvenida porque todo está bien.
          ShowMessage('Bienvenido(a) ' + form_tablas.queryiniciarsession.Fieldbyname('Nombre_Completo').Asstring);
          formPrincipal.LabeNombredelUsuario.Caption := form_tablas.queryiniciarsession.Fieldbyname('Nombre_Completo').Asstring;
          formPrincipal.Label_posicion.Caption := form_tablas.queryiniciarsession.Fieldbyname('Posicion').Asstring;
          txtpassword.Text := '';



          //este es el formulario de administración.
          formPrincipal.Show;

           //este es el formulario del login
          Form1_Form_Login_Principal.Visible:= false;


            end


        end
      else
      begin
      ShowMessage('Usuario y/o Contraseña Incorrecta');
      end
    end;

end;

Cualquier inquietud o duda me dejas saber.
Hola Buenas tardes gracias por responder mira ya lo habia logrado luego de investigar un poco mas y jugar con el codigo me quedo de la siguiente forma

Código Delphi [-]
procedure TfLogin.bAceptarClick(Sender: TObject);
begin
fModulo.qCuentas.close;
fModulo.qCuentas.ParamByName('usuario').Value:= eUsuario.Text;
fModulo.qCuentas.ParamByName('contrasenia').Value:= eContrasenia.Text;
fPrincipal.Caption := fprincipal.Caption + 'Usuario Conectado: ' +eUsuario.Text;
 fModulo.qCuentas.Open;
 if fmodulo.qCuentas.IsEmpty then
 begin
     Application.MessageBox('No se pudo establecer la conexion. Revise usuario o contraseña','Drugstore',MB_ICONERROR+MB_OK) ;
     fLogin.ModalResult :=   mrNone;
     fLogin.eUsuario.SetFocus;
 end;
end;

me gusto mucho tu codigo en especial la parte que comprueba si el usuario esta inactivo muchas gracias mejorare el mio
Responder Con Cita