Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcussombra

[Tutorial] Como criar um "sistema" de Login

Recommended Posts

Nesse tutorial, vou usar o componente Zeos. Tem um tutorial ensinando como usar em um dos artigos do Imasters: http://www.imasters.com.br/artigo/3377. Ele é usado para criar conexões entre banco de dados e suas aplicações.
O banco usado foi o FireBird v.1.5

O SQL para a tabela:
CREATE TABLE LOGIN (
LOGIN VARCHAR(20),
SENHA VARCHAR(20)
);


1º passo: Adicione um componente “Zconnection” e mude sua propriedade name para “Zcon”. Também adicione um componente “Zquery” e mude sua propriedade name para “Zquery”. Ainda nas propriedades do Zquery, mude a propriedade Connection para “Zcon”.

2º passo: No evento “FormCreate” do seu form principal, adicione estas linhas:

Dm.Zcon.HostName := 'localhost'; // Define que o banco encontra-se no servidor local.
Dm.Zcon.Database := 'Caminho para seu banco'; // Caminho onde se encontra o seu banco de dados
Dm.Zcon.User := 'Usuario do seu banco'; // Usuário usado para autenticação no banco
Dm.Zcon.Password := 'Senha do seu banco'; // Senha usado para autenticação no banco

Dm.Zcon.Protocol:= 'firebird-1.5'; // Define o Banco usado como sendo FireBird 1.5
Dm.Zcon.Connect; // Conecta ao banco
frmLogin.ShowModal; // Abre o form de login(você vai cria-lo mais a frente)


3º passo: Crie um form e mude a sua propriedade name para “frmLogin”.

4º passo: Adicione nesse form “2 labels” e “2 edits” e um Button.

5º passo: Mude a propriedade de um dos edits para “edLogin” e o outro para “edSenha”. Os labels mude os captions para “Login:” e o outro para “Senha:”. O botão, mude sua propriedade name para “btLogin”.

6º passo: Posicione os componentes para que fique uma “tela de login” agradável...

7° passo: No evento OnClick do botão, adicione estas linhas:

if (edLogin.Text = '') then
begin
ShowMessage('O campo Login está vazio'); // Se o campo Login estiver vazio, retorna a msg de erro
end
else
if (edSenha.Text = '') then
begin
ShowMessage('O campo Senha está vazio'); // Se o campo Senha estiver vazio, retorna a msg de erro
end
else
begin
btLogin.Enabled := false; // Desativa o botao para que seja evitado o usuario apertar 2 vezes
DM.Zquery.Active := false; // Desativa a query
DM.Zquery.SQL.Clear; // Limpa o atual SQL da query
DM.Zquery.SQL.Append('SELECT FIRST 1 * FROM LOGIN WHERE LOGIN = :Login AND SENHA = :Senha'); // Adiciona o SQL para busca do usuario
DM.Zquery.ParamByName('Login').Asstring := edLogin.Text; // Define o parametro "Login" como sendo o Texto do edLogin
DM.Zquery.ParamByName('Senha').Asstring := edSenha.Text; // Define o parametro "Senha" como sendo o Texto do edSenha
DM.Zquery.Open; // Abre(executa) a busca

if frmPrincipal.Zquery.isEmpty then
begin
ShowMessage(A senha está incorreta!'); // Se a query não retornar resultados, mostra a msg de que a senha está errada

edSenha.Text := ''; // Zera o texto do campo senha
edSenha.SetFocus; // Coloca o focus no campo Senha
btLogin.Enabled := true; // Ativa novamente o botao
end
else
begin
frmLogin.Close; // Se for encontrado resultados, fecha o frmLogin.
end;
end;


O código foi todo comentado e espero ter ajudado aos iniciantes ai... Se tiver algum erro, desculpem-me.. Mas é que fiz tudo de cabeça e não testei...

Obrigado ai... Duvidas e sugestões serão sempre bem-vindas!

Boa sorte ;]~

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Marcus,

 

Brother seu tutorial ficou bem legal, tô dando uma olhada por cima.. Ah sim!!! Gostei também você colocou comentários em todas as partes a gente sempre aprende algo assim rsrs.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabéns pelo artigo, é sempre bem-vindo para auxiliar-nos, visto que necessitamos sempre de rotinas como essa para podermos implementar nos nossos projetos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como 'e que se faz para executar o comando Insert no ZQuery??

 

Eu ja vinculei ele no ZUpdateSQL, coloquei os parametros e etc.

Ele funciona tudo normal, ate executa o insert no Mysql e fica direitinho...

mas o Projeto da um erro com a mensagem:

 

"Can not open a ResultSet"

 

NA depuracao o Zeos me retorna o erro na seguinte funcao:

function TZMySQLStatement.ExecuteQuery(SQL: string): IZResultSet;
begin
  Result := nil;
  if FPlainDriver.ExecQuery(FHandle, PChar(SQL)) = 0 then
  begin
	DriverManager.LogMessage(lcExecute, FPlainDriver.GetProtocol, SQL);
	if FPlainDriver.GetStatus(FHandle) = MYSQL_STATUS_READY then
[b]	  raise EZSQLException.Create(SCanNotOpenResultSet);[/b]
	Result := CreateResultSet(SQL);
  end else
	CheckMySQLError(FPlainDriver, FHandle, lcExecute, SQL);
end;

Nao Consigo resolver por nada... grato desde ja,,,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.