Ir para conteúdo
Fórum Script Brasil
  • 0

Dicas Do Micheus


Paulo Nobre

Pergunta

O micheus colocou uma dica de login com o seguinte código:

Crie uma tabela no seu banco de dados com apenas 3 campos: Login, Senha e Cargo (todos os três alfanuméricos, podendo qualquer um ser chave primária).
No DataModule ou no próprio formulário de senha coloque um TTable, um TDataSource e um TQuery. No formulário de senha ponha 2 TEdits e um TButtom (BtnOK) O código está listado abaixo.


CODE 
procedure TFrmAcesso.BtnOKClick(Sender: TObject);
Var Login, Senha, Tipo : String;
begin
  DM.QrAcesso.Close;
  DM.QrAcesso.SQL.Text := 'Select * from Acesso '+
  'Where Login =:LoginBusca and Senha =:SenhaBusca';
  DM.QrAcesso.Params[0].AsString := (Edit1.Text);
  DM.QrAcesso.Params[1].AsString := (Edit2.Text);
  DM.QrAcesso.Open;
  Login := DM.QrAcessoLogin.Value;
  Senha := DM.QrAcessoSenha.Value;
  Tipo := DM.QrAcessoTipo_Usuario.Value;
  if (Login = Edit1.Text) and (Senha = Edit2.Text) and (Tipo = 'Administrador')then begin
     {Nesse caso é um Administrador que está utilizando o sistema, então habilite todas as funções do sistema} 
     FrmPrincipal.ShowModal;
  end;
  if ( Login = Edit1.Text) and (Senha = Edit2.Text) and (Tipo = 'Usuário')then begin
     {Nesse caso é um Usuário que está acessando o sistema, então desabilite tudo que você não quer que ele tenha acesso, como determinados formulários, botões, consultas, entre outros}
     FrmPrincipal.ShowModal;
  end;
  if (Login <> Edit1.Text) or (Senha <> Edit2.Text) then begin
     ShowMessage('Login ou Senha inválidos.');
     Edit1.Clear;
     Edit2.Clear;
     Edit1.SetFocus;
  end;
  end;



Uma coisa legal dessa rotina é que permite que o programador possa implementar no código o que é permitido fazer por um Usuário do sistema e o Administrador do mesmo. 

Como realmente achei a idéia super interessante fui tentar estudá-la.

Não tenho muita experiência com banco de dados muito menos com componente TQuery.

Fiz toda a parte fácil e na hora de compilar apareceram as dúvidas;

1) Na montagem da tabela(fiz em paradox), já tenho que digitar os valores para login, senha e cargo.

Tipo: paulo para login, 3456 para senha e administrador para Cargo?

2)Esta me faltando o básico mesmo. Com vinculo o TQuery? É com o mesmo e único DataSource?

3)Está aparecendo erro de compilação em:

[Error] USenhaLogin.pas(39): Undeclared identifier: 'QrAcessoLogin'

[Error] USenhaLogin.pas(40): Undeclared identifier: 'QrAcessoSenha'

[Error] USenhaLogin.pas(41): Undeclared identifier: 'QrAcessoTipo_Usuario'

Não estou sabendo fazer aparecer QrAcessoLogin, QrAcessoSenha etc..

O nome que dei ao TQuery foi QrAcesso.

Será que alguém que testou a dica ou tenha experiência poderia, quando tiver tempo dar uma detalhada

para este ignorante aqui?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Tem razão Micheus, peço desculpas pelo engano.

É que o quote estava tão grande e havia feito CTRL+C para estudar depois, que nem reparei, que embora o tópico havia sido seu, era apenas para fazer um comentário com um link.

Link para o comentário
Compartilhar em outros sites

  • 0

Pelo que entendí desse código, é uma validação de login/senha. Basta somente um TQuery para acessar o banco:

Query.Close;
Query.SQL.Text := 'Select Login, Senha, Tipo From Tabela_Acesso Where Login = :P0 and Senha = :P1';
Query.ParamByName('P0').asString := Edit_Login.Text;
Query.ParamByName('P1').asString := Edit_Senha.Text;
Query.Open;
if Query.Eof then
begin
  // Login e/ou senha inválido
  Query.Close;
  Exit;
end;
if SameText(Query.FieldByName('Tipo').asString, 'Administrador') then
  // Administrador
else
  // Não Administrador
Query.Close;

PS: Seria bom guardar as informações no Banco criptografadas.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Eu utilizo em meus sistemas a validação de usuário também, mas faço da seguinte maneira:

Em minha tabela de senhas eu tenho os campos: Usuario, senha e um campo para cada atividade do meu sistema, ai tenho um form de cadastro de usuarios que o administrador do sistema escolhe qual as oplçoes o usuario terá acesso ao efetuar o login. É um pouco trabalhoso mas funciona certinho.

falou

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...