Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago Delalibera

Login com Mysql/Zeoslib

Recommended Posts

Galera, sou programador php, aprendi alguma coisa de delphi a alguns anos mas sabe como é, se não põe em prática ja era!, o seguinte que eu já manjo do mysql, e preciso desenvolver uns pequenos sistemas windows, por isso instalei o componente zeos pra trabalhar com mysql, porém não achei nenhum exemplo na net pra se criar um formulário de login do sistema, alguém pode me dar uma força?

 

simplesmente o form de login basico, verificar usuario e senha, executar a query sql e mostrar o form principal..

 

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, bom dia.

Voce vai precisar dos seguintes componentes:

 

1 - ZConnection

1 - ZQuery

1 - Form para desenhar a tela de login

1 - Button

2 - Edit

 

No evento FormCreate da tela principal, voce deve adicionar os seguintes comandos de acesso à base.

 

ZConnection.HostName := 'localhost' {ou o IP do servidor}

ZConnection.DataBase := 'nome do seu banco de dados' {ou o local onde o arquivo se encontra}

ZConnection.User := 'usuario de acesso ao banco'

ZConnection.Password := 'senha de acesso ao banco'

ZConnection.Protocol := 'versão do banco de dados'

ZConnection.Port := '3306' {normalmente se utiliza esta porta}

ZConnection.Connected := 'true'

 

FormLogin.ShowModal;

 

Monte seu formulário conforme seu gosto.

 

No evento OnClick do botão, adicione os seguintes comandos:

 

if (EditLogin.text = '') then
   begin
	  showmessage('Digitação obrigatória!');
   end
else
   if (EditSenha.text = '') then
	  begin
		 showmessage('Digitação obrigatória!');
	  end
   else
	  begin
		 Button.Enable := False;
		 ZQuery.Active := False;
		 ZQuery.SQL.Clear;
		 ZQuery.SQL.Append('SELECT * FROM tabela WHERE login = :Login AND senha = :Senha');
		 ZQuery.ParamByName('Login').AsString := EditLogin.text;
		 ZQuery.ParamByName('Senha').AsString := EditSenha.text;
		 ZQuery.Open;
		 if ZQuery.IsEmpty then
			begin
			   Showmessage('Usuário ou Senha incorretos');
			   EditLogin.text := '';
			   EditSenha.text :='';
			   EditLogin.Setfocus;
			   Button.Enable := True;
			end
		 else
			begin
			   FormLogin.Close;
			end;
end;

SQL para tabela:

 

CREATE TABLE usuarios

(

login VARCHAR(20),

senha VARCHAR(20)

);

 

Notas:

 

No SQL montado, você perceberá que existe duas vaiáveis na cláusula WHERE:

 

:Login

:Senha

 

Quando se usar variáveis, deve-se indicar o que esta variável está recebendo, como é indicado pelo comando:

ZQuery.ParamByName('Login').AsString := EditLogin.text;

Ou seja, esta variável :Login está recebendo o conteúdo do EditLogin

 

Como fiz tudo de cabeça, pode ser que tenha algum erro, mas caso isso aconteça, poste novamente para que a gente resolva.

Espero ter ajudado.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elisei, usei seu exemplo, fussei e tudo e deu certo, agora criei um novo form, presumo que eu deveria colocar a chamada a este form após:

 

FormLogin.Close;

 

eu criei entao um novo form e dei o nome de FormPrincipal, então coloquei no form de login o seguinte após o FormLogin.CLose.

 

FormLogin.Close;

FormPrincipal.Show;

 

mas o delphi não compila, diz que FormPrincipal é um indetificador não declarado

 

Undeclared identifier: 'FormPrincipal';

 

acho que tenho que associar este form de alguma forma, só não sei como, se puder me dar outra forcinha.. desde já muito obrigado!

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem duas alternativas:

 

1) fechar o FormLogin Após abrir o FormPrincipal;

2) fechar o FormLogin Antes de abrir o FormPrincipal;

 

Na primeira alternativa, repasse o código e verifique no no evento FormCreate do FormPrincipal, voce está executando o comando FormLogin.ShowModal;

O ShowModal, não permite se ative o form que está atrás. Já o Show permite.

Quando voce abre o seu software (FormPrincipal), automaticamente se abre o FormLogin. Desta forma, voce irá trabalhar com este Form e executar os comandos e caso usuário e senha estejam corretos, logo em seguida irá se fechar.

 

Na segunda alternativa, carregue primeiro o FormPrincipal e em seguida Feche o FormLogin.

 

Costumo utilizar a primeira alternativa.

 

Tente alguma delas e me retorne ok?

Abraço.

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.