Fórum Verificação de Login no Banco de Dados Utilizando ADOQUERY #597953

18/10/2018

0

Boa noite,

Estou realizando um trabalho no Delphi 7, onde tenho inicialmente uma tela de Login onde precisará verificar se o Login do Usuário esta cadastrado no Banco de Dados. Estou utilizando um Banco de Dados em Oracle.

Uma vez consegui fazer essa verificação utilizando os componentes do InterBase no Delphi, porém, agora estou em outro cenário, pois o banco de dados que estou utilizando esta no Servidor e pelo o que entendo os componentes do InterBase só funcionam com banco de Dados Local correto?

Teriam alguma solução para me ajudar?

Desde já agradeço!!
Vinicius David

Vinicius David

Responder

Post mais votado

24/10/2018

Teste estes 2 métodos.

1º método: Com parâmetros:
with ADOQuery1 do
  begin
    Close;
    SQL.Clear; // Adicionei esta linha para limpar o SQL
    SQL.Add('Select * from USUARIO WHERE LOGINID = :Pus AND SENHA = :Pse');
    Parameters[0].Value := Edit1.Text;
    Parameters[1].Value := Edit2.Text;
    Open;

    If IsEmpty then
    begin
      showmessage('Usuário ou senha inválida(o)');
      Application.Terminate;
    end;
  end;

2º método: Com QuotedStr:
with ADOQuery1 do
  begin
    Close;
    SQL.Clear; // Adicionei esta linha para limpar o SQL
    SQL.Add('Select * from USUARIO');
    SQL.Add(' WHERE LOGINID = ' + QuotedStr(Edit1.Text) + ' AND SENHA = ' + QuotedStr(Edit2.Text));
    Parameters[0].Value := Edit1.Text;
    Parameters[1].Value := Edit2.Text;
    Open;

    If IsEmpty then
    begin
      showmessage('Usuário ou senha inválida(o)');
      Application.Terminate;
    end;
  end;

Natanael Ferreira

Natanael Ferreira
Responder

Gostei + 1

Mais Posts

18/10/2018

Fernando Duwe

Oi Vinicius,

Não, você poderá utilizar o ADO para conectar-se a um outro servidor. Porém, o Interbase que você citou, é outro SGDB (Sistema gerenciador de banco de dados), não tendo a ver com o cenário aqui. O pacote Interbase do Delphi, serve para conectar-se a bancos de dados Interbase.

Esse artigo talvez lhe ajude a se conectar num banco Oracle, via ADO:
https://stackoverflow.com/questions/7415787/oracle-database-connection-dynamically-using-adoconnection-in-delphi
Responder

Gostei + 0

24/10/2018

Vinicius David

Boa noite,

No caso, esse link que você passou é referente ao login e senha do Banco de Dados.

Eu já consegui conectar meu banco de Dados Oracle no Delphi, porém não estou conseguindo utilizar a Ferramenta ADOQuery para fazer a verificação do Login e da Senha com o Banco de dados.

Tenho uma tabela de Usuarios, onde eu atribuo dois parâmetros, sendo eles um para login e outro para senha.

Porém quando eu coloco para verificar esses parâmetros o sistema acusa que o edit esta em branco e fecha a aplicação.

ADOQUERY1.Close;
ADOQUERY1.SQL.Add('Select * from USUARIO WHERE (LOGINID =:Pus) AND (SENHA =:Pse)');
ADOQUERY1.Parameters.ParamByName('Pus').Value := Edit1.Text;
ADOQUERY1.Parameters.ParamByName('Pse').Value := Edit2.Text;
ADOQUERY1.Open;

If ADOQUERY1.IsEmpty then
begin
showmessage('Usuário ou senha inválida(o)');
Application.Terminate;
end

Alguém poderia me ajudar?

Preciso muito terminar esse projeto.

Desde já agradeço!

Responder

Gostei + 0

24/10/2018

Natanael Ferreira

Corrigindo o segundo método:

  with ADOQuery1 do
  begin
    Close;
    SQL.Clear; // Adicionei esta linha para limpar o SQL
    SQL.Add('Select * from USUARIO');
    SQL.Add(' WHERE LOGINID = ' + QuotedStr(Edit1.Text) + ' AND SENHA = ' + QuotedStr(Edit2.Text));
    Open;

    If IsEmpty then
    begin
      showmessage('Usuário ou senha inválida(o)');
      Application.Terminate;
    end;
  end;
Responder

Gostei + 1

24/10/2018

Vinicius David

Bom dia,

Natanael, o primeiro método deu certinho... consegui realizar... só tenho uma dúvida...
Teria como no momento em que eu colocar o LOGINID aparecer o setor em que a pessoa trabalha em outro edit?

Abraços!
Responder

Gostei + 0

24/10/2018

Natanael Ferreira

Neste caso, você pode colocar no evento OnChange no Edit uma consulta SQL em que pesquisa o setor do usuário digitado.

O nome do setor está na mesma tabela de usuario? Se for, adicione uma nova Adoquery e tente adaptar o código abaixo:

  
  with ADOQuery2 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from USUARIO WHERE LOGINID = :Pus');
    Parameters[0].Value := Edit1.Text;
    Open;

    Edit3.Text := FieldByName('Setor').AsString; // Troque "Setor" pelo nome correto do campo de setor
  end;
Responder

Gostei + 1

25/10/2018

Vinicius David

Boa noite,
tudo bem?

Esse código não deu certo... assim que eu coloco o nome e a senha e aperto no botão OK para entrar na Aplicação o Setor não aparece no Edit.

Eu consegui resolver com um DBEdit no lugar do Edit e apareceu o Setor.

Natanael agradeço muito a ajuda!!
Responder

Gostei + 0

25/10/2018

Natanael Ferreira

Blz. Que bom que conseguiu resolver.
Responder

Gostei + 1

25/10/2018

Vinicius David

Eu consigo colocar o Login do Usuário que eu digitei no Edit aparecer em um DBEdit em outro Form?
Responder

Gostei + 0

25/10/2018

Natanael Ferreira

Sim. Basta adicionar o DBEdit no outro form e configurar a propriedade DataSource para o DataSource usado no login.
Responder

Gostei + 1

06/11/2018

Vinicius David

Boa noite,

No caso esse Edit que estou colocando para verificação do Login, ao acessar a aplicação consigo jogar o que eu coloquei no Edit dentro de uma coluna no DBGrid?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar