Ir para conteúdo

POWERED BY:

Arquivado

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

etspaz

problema com banco

Recommended Posts

outra duvida, rsrs..adoqueryAcesso.Close; adoqueryAcesso.ExecSQL; adoqueryAcesso.Open; if (adoqueryAcesso.FieldByName('SENHA').AsString = edSenha.Text) and (adoqueryAcesso.FieldByName('DEPARTAMENTO').AsString = EdDepartamento.Text) and (adoqueryAcesso.FieldByName('USERNAME').AsString = EdUsuario.Text) then begineste trecho é do login de um programa, ele ta acessando , mas só consigo logar com uma senha, parece que só lê o primeiro registro.coloquei o primeiro usuario como administrador..., os outros usuarios nao logam.é como se tivesse só o primeiro registro, o do admin, por que será?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente pode remover o comando ExecSQL neste caso não serve para nada...Acontece isto pois você simplesmente manda dar um .Close e .Open na query, fazendo ele se posicionar no primeiro registro em questão, e fazendo a validação sempre com o primeiro.Caso queira validar por todos e verificar se o user existe, pode fazer de duas formas, usando um while sobre a query e validando com o usuário informado, ou então passar o usuário para o sql e filtrar pelo próprio SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente pode remover o comando ExecSQL neste caso não serve para nada...Acontece isto pois você simplesmente manda dar um .Close e .Open na query, fazendo ele se posicionar no primeiro registro em questão, e fazendo a validação sempre com o primeiro.Caso queira validar por todos e verificar se o user existe, pode fazer de duas formas, usando um while sobre a query e validando com o usuário informado, ou então passar o usuário para o sql e filtrar pelo próprio SQL.

consegui, com base no que você disse, eu me lembrei de algo parecido que fiz, também com sua ajuda,e alterei o que precisava e pimba, eu tirei o ExecSQL e realmente estava inutil, eu achava que com ele poderia so executar a instrução sql da query hehe.no caso do while seria com aquele while not eof..., tentei e não consegui deste jeito, pode me dizer, por favor?veja como ficou, vlw http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Primeiramente pode remover o comando ExecSQL neste caso não serve para nada...Acontece isto pois você simplesmente manda dar um .Close e .Open na query, fazendo ele se posicionar no primeiro registro em questão, e fazendo a validação sempre com o primeiro.Caso queira validar por todos e verificar se o user existe, pode fazer de duas formas, usando um while sobre a query e validando com o usuário informado, ou então passar o usuário para o sql e filtrar pelo próprio SQL.

consegui, com base no que você disse, eu me lembrei de algo parecido que fiz, também com sua ajuda,e alterei o que precisava e pimba, eu tirei o ExecSQL e realmente estava inutil, eu achava que com ele poderia so executar a instrução sql da query hehe.no caso do while seria com aquele while not eof..., tentei e não consegui deste jeito, pode me dizer, por favor?veja como ficou, vlw http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif strsqllog:string;mensagem: string;begin strSqlLog:='select * from ACESSO where SENHA ='+#39+ (EdSenha.Text)+#39; strSqlLog:=strSqlLog + ' and USERNAME ='+#39 +(EdUsuario.Text) +#39; strSqlLog:=strSqlLog + ' and DEPARTAMENTO ='+#39 +(EdDepartamento.Text) +#39; adoqueryAcesso.Close; adoqueryAcesso.SQL.Clear ; adoqueryAcesso.SQL.Add(strSqlLog); adoqueryAcesso.Open; if (adoqueryAcesso.RecordCount )>0 then begin FMENU.StatusBar1.Panels [2].Text := ''+ 'usuario: '+ FChave.EdUsuario.text + '-' +adoqueryAcesso.fieldbyname('USERNAME').AsString; FMENU.StatusBar1.Panels[3].Text:=''+'Departameno: '+ FChave.EdDepartamento.Text + '-' +adoqueryAcesso.fieldbyname('DEPARTAMENTO').AsString; FChave.Close; end; if(adoqueryAcesso.RecordCount)=0 then begin mensagem:='Nome ou senha de usuário inválidos.'; Application.MessageBox(pchar(mensagem),'Login não autorizado',MB_OK+MB_ICONERROR); EdSenha.Clear; EdUsuario.Clear; EdDepartamento.Clear; EdUsuario.SetFocus; end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah, eu ja peguei, amanha vou estudá-lo, pois agora vou pro curso,mas parece-me que esqueci da questão do nivel de usuario, pois do jeito que fiz, todo mundo pode tudo, certo?

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.