Verificação de Login no Banco de Dados Utilizando ADOQUERY
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!!
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
Curtidas 0
Melhor post
Natanael Ferreira
24/10/2018
Teste estes 2 métodos.
1º método: Com parâmetros:
2º método: Com QuotedStr:
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;GOSTEI 1
Mais Respostas
Fernando Duwe
18/10/2018
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
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
GOSTEI 0
Vinicius David
18/10/2018
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!
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!
GOSTEI 0
Natanael Ferreira
18/10/2018
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;GOSTEI 1
Vinicius David
18/10/2018
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!
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!
GOSTEI 0
Natanael Ferreira
18/10/2018
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:
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;GOSTEI 1
Vinicius David
18/10/2018
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!!
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!!
GOSTEI 0
Natanael Ferreira
18/10/2018
Blz. Que bom que conseguiu resolver.
GOSTEI 1
Vinicius David
18/10/2018
Eu consigo colocar o Login do Usuário que eu digitei no Edit aparecer em um DBEdit em outro Form?
GOSTEI 0
Natanael Ferreira
18/10/2018
Sim. Basta adicionar o DBEdit no outro form e configurar a propriedade DataSource para o DataSource usado no login.
GOSTEI 1
Vinicius David
18/10/2018
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?
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?
GOSTEI 0