Ir para conteúdo

POWERED BY:

Arquivado

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

MarceloBezerra

[Resolvido] Rotina de login ZEOS 7+MYSQL+DELPHI 2010

Recommended Posts

Boa tarde galera,

 

Estou me aventurando no mundo DELPHI, li algumas apostilas, alguns artigos, tutoriais, video aula e tudo mais.

 

Iniciei a programação propriamente dita. Para situa vocês vou descrver o q fiz!

 

1) Instalei o DELPHI 2010 pois o D7 não rodou direito no Windows 7.

2) Instalei o ZEOS 7 pois não consegui conectar a minha base de dados q esta em MYSQL pelo DBExpress!

Sempre o erro libmysql.dll erro de versão.

3) criei uma DATA MODULE chamada DM_trx.

5) dentro dela fiz uma conexão pelo Zconection.

6) Fiz uma Zquery de nome ZQuery_user liguei a Zconnection, dentro da SQL dessa Zquery tem

 

'select * from tb_user where usuario=:usuario and senha=:senha'

7 ) fiz um DataSource_user ligado a Zquery de nome ZQuery_user

 

Tenho um Form principal de nome F_Principal.

Um Form de login F_PassWord.

 

 

Esse último form quero criar uma rotina de autenticação. DESSA FORMA:

 

unit u_PassWord;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, GIFImg, jpeg, StdCtrls, Mask, Buttons;

type
 TF_PassWord = class(TForm)
   Image2: TImage;
   GrpBox_login: TGroupBox;
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Label4: TLabel;
   Edt_user: TEdit;
   Edt_senha: TEdit;
   BtnOK: TBitBtn;
   BtnCancelar: TBitBtn;
   procedure BtnCancelarClick(Sender: TObject);
   procedure BtnOKClick(Sender: TObject);

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 F_PassWord: TF_PassWord;

implementation

uses u_DM, u_principal;

{$R *.dfm}


procedure TF_PassWord.BtnCancelarClick(Sender: TObject);
begin
Application.Terminate;
end;

procedure TF_PassWord.BtnOKClick(Sender: TObject);

var ComandoSQL : String;

begin

 with  DM_trx.ZQuery_user do begin
 Close;
 SQL.Clear;
 SQL.Add('SELECT * FROM tb_user WHERE usuario=:usuario AND senha=:senha');
 Params.ParamByName('usuario').Value:= Edt_user.Text;
 Params.ParamByName('senha').Value:= Edt_senha.Text;
 Open;
     if DM_trx.ZQuery_user.Recordcount > 0 then begin
        showmessage('Foram encontrados ' + IntToStr(DM_trx.ZQuery_user.Recordcount) + ' Usuários  com Usuário: ' + Edt_user.Text + ' e Senha: ' + Edt_senha.Text);
        F_PassWord.Hide;
        F_Principal.Show;
        end else begin
       showmessage('Esse nome de usuário não existe.');
      end;

end;

end ;

 

 

Parece que não esta reconhecendo a SQL.. esta dando o erro de SINTAXE.

 

SQL ERROR:You have an error in your SQL sintax; check the manual that corresponds to your MYSQL server version for the right sintax to use near 'AND senha=' at line 1

 

 

 

O engraçado é que eu fiz um teste de consulta pelo Zquery usado uma TDBGrid e deu certo!

 

Preciso de ajuda . PLEASE...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, ele não reconheceu os parâmetros que você passou. Tente usar os edits no lugar dos parâmetros:

 

SQL.Add('SELECT * FROM tb_user WHERE usuario=' + QuotedStr(edt_Login.Text) + AND senha=' + QuotedStr(edt_Senha.Text));

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TF_PassWord.BtnOKClick(Sender: TObject);
begin

 with  DM_trx.ZQuery_user do begin
 Close;
 SQL.Clear;
 SQL.Add('SELECT * FROM tb_user WHERE usuario=' + QuotedStr(edt_user.Text) + AND 'senha=' + QuotedStr(edt_Senha.Text));
 //Params.ParamByName('usuario').Value:= Edt_user.Text;
 //Params.ParamByName('senha').Value:= Edt_senha.Text;
 //Active:=True;
 //Open;
 DM_trx.ZQuery_user.ExecSQL;

     if DM_trx.ZQuery_user.Recordcount > 0 then begin
        F_PassWord.Hide;
        F_Principal.Show;
        end else begin
       showmessage('Esse nome de usuário não existe.');
      end;

end;

 

 

 

 

Estou notando que não esta reconhecendo a linha de comando a partir do AND senha=. Pois o erro persistiu.

 

SQL ERROR:You have an error in your SQL sintax; check the manual that corresponds to your MYSQL server version for the right sintax to use near 'AND senha=' at line 1

 

Seria o caso de abandonar a Zquery, uma vez que eu estou começando e tentar fazer pela Ztable, que aparentemente é mais simples?????

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.