Fórum Login e senha #232506
15/05/2004
0
catei que nem um louco e não encontrei.
Seguinte eu tenho um form aonde tem dois capos po cara colocar seu login e senha. Eu queria saber como fazer para quando ele digitar o login e senha , acessar o banco de dados verificar se a senha e login estão corretos,caso sim abre outro form ,caso não aparece uma mensagem de erro.
Uso banco de dados Access e quera fazer a conexão por ADO .
desde já agradeço.
Framosip
Curtir tópico
+ 0Posts
15/05/2004
Ruysalles
No botão de Ok coloque e seguinte código:
[b:271e2e89f3]begin[/b:271e2e89f3]
qry_senha.close;
qry_senha.text := ´select usuario, senha from senha where nome = ´´ + trim(edt_usuario.text) + ´ and senha = ´ + edt_senha.text;
qry_senha.open
[b:271e2e89f3]if[/b:271e2e89f3] qry_senha.recordcount > 0 [b:271e2e89f3]the[/b:271e2e89f3]n
close //Fecha a sua tela de senha
[b:271e2e89f3]else[/b:271e2e89f3]
Showmessage(´O nome do seu usuário e senha estão incorretos´);
[b:271e2e89f3]end;[/b:271e2e89f3]
Gostei + 0
15/05/2004
Dbergkamps
Criei uma tabela com os campos usuario de senha
no on show do form vc chama o form de autenticacao
Ex: FmAutentica.Showmodal.
Coloquei nele um Dbgrid com a propriedade row select = true e edit = false para que o usuario selecione o seu nome no dbgrid.
coloque um mask edit para sevir como campo de senha e um botão de autenticacao.
no codigo on click do botao coloquei:
If TabelausuarioSenha.Value = Maskedit1.text then
Showmessage(´Usuário Autenticado´)
else
Showmessage(´Usuário não idenfiticado´)
caso vc consiga outra forma poste aqui para eu aprender
Gostei + 0
16/05/2004
Framosip
quando vc diz que o banco ja deve estar aberto,seria que ja estivesse conectado ao banco??
caso sim,eu ja coloquei um ADOconnection e mudei a propriedade connectionstring para:
Provider=Microsoft.Jet.OLEDB.4.0;Password=´´;User ID=admin;Data Source=D:\delphi\controle de estoque\base\base.mdb;Mode=Share Deny None;Extended Properties=´´;Jet OLEDB:System database=´´;Jet OLEDB:Registry Path=´´;Jet OLEDB:Database Password=´´;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=´´;Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don´t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
eu queria saber o que é no seu código o :
qry_senha
se vc pudesse me explicar passo a passo agradeço.
Gostei + 0
16/05/2004
Ire
quando ele escreve qry_senha refere-se a ao componente Adoquery correspondente a tabela de senha, e quando ele diz que o banco deve estar aberto, não é pra vc ativar a propriedade active para true, vc deve ativar seu banco através de: (Adoconnection.open) antes do início da autenticação.
Ire
Gostei + 0
16/05/2004
Framosip
no meu form tem um ADOCONNECTION como o nome de conexao
ao carregar o form eu coloquei
conexao.open
e agora como devo fazer quais componentes devo colocar??
por favor me ajudem!!
Gostei + 0
17/05/2004
Framosip
estou travado nisso e preciso continuar!!!
obrigado desde já
Gostei + 0
17/05/2004
Framosip
Gostei + 0
17/05/2004
Cabelo
Sem desespero..
Depois de usar um ADOConnection, antes do usuário digitar qualquer coisa vc deve conectar este ADOConnection.. OK.
Depois de dar um open, vc deve usar agora outro componente, no form da senha..
Um ADOQuery, que está na Paleta ADO tb.., no evento Click do Botão OK, vc deve colocar o seguinte código :
begin
qry_senha.close;
qry_senha.text := ´select usuario, senha from senha where nome = ´´ + trim(edt_usuario.text) + ´ and senha = ´ + edt_senha.text;
qry_senha.open
if qry_senha.recordcount > 0 then
close //Fecha a sua tela de senha
else
Showmessage(´O nome do seu usuário e senha estão incorretos´);
end;
onde qry_senha : TADOConnection;
edt_usuario : TEdit reservado para o nome do usuário ou login.
edt_senha : TEdit reservado para a senha do usuário.
Aqui o que acontece, vc estará dando um select no banco onde o usuario e senha forem iguais ao digitados, se a query abrir o usuario digitou tudo corretamente, e sua aplicação irá abrir, senão irá dar uma mensagem e continuar esperando até que a senha e o nome do usuário sejam digiatdos corretamente..
espero ter ajudado..
Cabelo
Gostei + 0
17/05/2004
Framosip
coloquei ao carregar o form
conexao.Open
conexao é o noem do meu adoconnection
coloquei um ADOQuery , mudei o nome para qry_senha , mudei a opção connection para ´conexao´ , coloquei a opção active para true,mais ele falou que deveria ter algo no sql ai coloquei select * from acesso,consegui mudar active para true
depois no botão ok
begin
qry_senha.close;
qry_senha.text := ´select usuario, senha from senha where nome = ´´ + trim(edt_usuario.text) + ´ and senha = ´ + edt_senha.text;
qry_senha.open
if qry_senha.recordcount > 0 then
close //Fecha a sua tela de senha
else
Showmessage(´O nome do seu usuário e senha estão incorretos´);
end;
quando rodei apresentou o erro na linha:
qry_senha.text := ´select * from acesso where login = ´´ + trim(caixa_login.text) + ´ and senha = ´ + caixa_senha.text;
o erro foi
[Error] principal.pas(95): Undeclared identifier: ´text´
emfim não sei mais o que fazer!!!
se alguém puder me ajudar
Gostei + 0
17/05/2004
Cabelo
Desculpe a minha falta de atenção :
o código correto é :
begin
qry_senha.close;
qry_senha.SQL.Add(´select usuario, senha from senha where nome = ´´ + trim(edt_usuario.text) + ´´´ and senha = ´´ + edt_senha.text + ´´´´);
qry_senha.open
if qry_senha.recordcount > 0 then
close //Fecha a sua tela de senha
else
Showmessage(´O nome do seu usuário e senha estão incorretos´);
end;
postei errado a linha :
qry_senha.text := ´select usuario, senha from senha where nome = ´´ + trim(edt_usuario.text) + ´ and senha = ´ + edt_senha.text;
enquanto o correto é :
qry_senha.SQL.Add(´select usuario, senha from senha where nome = ´´ + trim(edt_usuario.text) + ´´´ and senha = ´´ + edt_senha.text + ´´´´);
Se vc copiar exatamente como está aqui para o seu botão irá funcionar perfeitamente..
Só para completar se vc quiser ativar sua query em desing-time, é só vc adicionar o seu select na propriedade SQL, da query, depois ative, e veja que conecta..
espero ter ajudado..
sem mais
Cabelo
Gostei + 0
17/05/2004
Framosip
amigo deu erro na linha
qry_senha.SQL.Add(´select * from acesso where login = ´´ + trim(caixa_login.text) + ´´´ and senha = ´´ + caixa_senha.text + ´´´´);
o erro foi
[Error] principal.pas(95): Illegal character in input file: ´´´ ($22)
caramba ta complicado!!!
se puder me ajudar
Gostei + 0
17/05/2004
Cabelo
Tudo bem..
Susbstitua os dados que estiverem dentro dos sinais <>, pelos dados do seu banco.
Por exemplo, se sua Tabela no BD se chamar USUARIOS, vc deve substituir <nome da Tabela> para USUARIOS somente..
qry_senha.SQL.Add(´select * from <nome da Tabela> where <nome do campo do login ou nome do usuario> = ´´ + trim(caixa_login.text) + ´´´ and <nome do campo da senha do usuario> = ´´ + caixa_senha.text + ´´´´);
Tente fazer isso e me mande seu mail pra mandar apostilas que eu tenho aqui pra poder te ajudar..
sem mais
Cabelo
Gostei + 0
17/05/2004
Framosip
o nome da minha tabela é acesso os campos são login e senha
e mesmo assim continua dando erro
qry_senha.SQL.Add(´select * from acesso where login = ´´ + trim(caixa_login.text) + ´´´ and senha = ´´ + caixa_senha.text + ´´´´);
erro:
[Error] principal.pas(95): Illegal character in input file: ´´´ ($22)
desculpe causar trnastorno...é por que to começando em delphi agora!!
Gostei + 0
17/05/2004
Cabelo
Não sei, mas alguns bancos de dados, tem problemas com o uso de alguns caracteres especiais, tente usar um usuário sem letras maiúsculas, e sem caracteres especiais, bem como pontuação..A mesma coisa com a senha, e veja se dá erro..
não conheço muito de access..
sem mais
Cabelo
Gostei + 0
17/05/2004
Framosip
fernando
e a senha
123
tu poderia fazer um exemplo e me passar por e-mail??
que dificuldade para fazer um simples sistema de login...bom vi um tópico num forum por ai...em que perguntava quala usar VB ou Delphi.
não to falando q vb é melhor mais em vb fazer um sistema de login é a coisa mais facil do mundo!!!
mais é isso ai se vc puder me passar um exemplo te agradeço muito!!
e se alguém quizer me ajudar tb agradeço!!
meu e-mail é
fernandojoseramos@hotmail.com
obrigado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)