Jump to content
Fórum Script Brasil
  • 0

Ajuda!


raphael.sx
 Share

Question

e ai galera...

eu gostaria de saber como eu faria para q o "Nome do Usuario" no meu programa, não se repetisse...

com q código eu faria isso... por que teria que pegar o nome que eu digitei no dbtext, e comparar nome por nome na tabela, certo?

ajudem ai, por favor... isso pra vocês ai deve ser batata!

valeu!

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

voce pode fazer assim

table1.fieldsindex="NOMEUSUARIO";

if not Table1.findkey(ednomeusuario.txt,[]) then

begin

//Grava;

end else

begin

//Não Grava..

end;

Acho que é + ou - isso qualquer coise me contate por e-mail que posso testar

ou MSN [email protected]

FALOW

Link to comment
Share on other sites

  • 0

Use isso aqui que vai dar certo:

procedure TFrmUsuario.MaskEdit1Exit(Sender: TObject);

var Cod : string;

Begin

DM.TBUsuarios.Cancel;

if (trim(MaskEdit1.text) <> '') then begin

cod := MaskEdit1.text;

if DM.TBUsuarios.FindKey([cod]) then begin

Showmessage('Usuário já cadastrado.');

MaskEdit1.SetFocus;

end

else begin

//próximo campo.setfocus;

DM.TBUsuarios.Append;

end;

end;

end;

Link to comment
Share on other sites

  • 0
Guest Francenelson

Pelo que eu entendi, o seu problema é impedir o cadastro de registros com mesmo nome. Isso é meio complicado, mas há jeito.

você poderia criar uma query de pesquisa pelo nome que seria ativada no beforepost da sua query de cadastro, mas teria q fazer a verificação sem distinguir maiúsculas e minúsculas. Poderia utilizar algo assim

Where uppercase(nome) = uppercase(:nome)

Caso encontrasse algum registro, não permitiria salvar o registro.

Alguém sugeriu colocar o nome como chave primária, mas não é recomendado isso, pois poderia tornar o sistema lento, afinal a chae primária é um índice utilizado na movimentação entre registros.

Link to comment
Share on other sites

  • 0

Tenta isso:

Crie uma variavel de tipo boolean, pra indicar quando for um novo registro, senão toda ves que você clicar no botão "confirmar" será execultada essa Query (QryProcUsuario) dai mesmo que quando você estiver apenas alterando outros dados do cadastro de um usuario já existente, ele não permitira a gravação.

Ex:

Var vNovo : Boolean;

no botão de novo registo acrescente:

vNovo := True;

no botão de Confirmar:

if vNovo then begin

QryProcUsuario.Close;

QryProcUsuario.Sql.Clear;

QryProcUsuario.Sql.Add('SELECT * FROM TABELA_USUÁRIO');

QryProcUsuario.Sql.Add('WHERE NOME_USUARIO = '+''''+DBEdit1.text+''''+'');

QryProcUsuario.Open;

if QryProcUsuario.RecordCount > 0 then begin

ShowMessage('Usuário já cadastrado no Banco de Dados.');

QueryCadastro.Cancel;

Exit;

end else vNovo := False;

end;

vNovo := False;

//Grava os dados

bla, bla, bla;

dai é alternar o valor do vNovo onde for necessário.

-------------------------------------------------------------

pode num ser das melhores mas funciona. biggrin.gif

Link to comment
Share on other sites

  • 0

Olá Rafael,

Como você falou que se trata de "nomes de usuário" do seu sistema, geralmente não é colocada nenhuma restrição quanto ao nome do usuário em si (mesmo porque, é muito difícil existir dois usuários com o mesmo nome).

Em se tratando de usuários do sistema, geralmente é criado um campo que armazenará o NOME do usuário (por exemplo, RAPHAEL DIAS DE SOUZA) e um outro campo que será o LOGIN (por exemplo, RDIAS). Este login SIM, não poderá ser repetido (com isto você se livra do problema de ter nomes de usuário diferentes).

Daí ficou fácil, pois o login pode ser algo controlado (por exemplo, no máximo 10 caracteres), não admitindo acentos e apenas com letras maiúsculas.

Pronto. Se, por exemplo, tivermos dois RAPHAEL DIAS DE SOUZA, sendo que o primeiro tem o login RDIAS, caso o segundo tente cadastrar seu login como RDIAS (admitindo que qualquer usuário possa se cadastrar no sistema, não necessitando do administrador), o sistema facilmente detecterá.

Se a sugestão acima não for interessante para o seu caso em concreto, é só dar um toque.

Abs.

Link to comment
Share on other sites

  • 0
Olá Rafael,

Como você falou que se trata de "nomes de usuário" do seu sistema, geralmente não é colocada nenhuma restrição quanto ao nome do usuário em si (mesmo porque, é muito difícil existir dois usuários com o mesmo nome).

Em se tratando de usuários do sistema, geralmente é criado um campo que armazenará o NOME do usuário (por exemplo, RAPHAEL DIAS DE SOUZA) e um outro campo que será o LOGIN (por exemplo, RDIAS). Este login SIM, não poderá ser repetido (com isto você se livra do problema de ter nomes de usuário diferentes).

Daí ficou fácil, pois o login pode ser algo controlado (por exemplo, no máximo 10 caracteres), não admitindo acentos e apenas com letras maiúsculas.

Pronto. Se, por exemplo, tivermos dois RAPHAEL DIAS DE SOUZA, sendo que o primeiro tem o login RDIAS, caso o segundo tente cadastrar seu login como RDIAS (admitindo que qualquer usuário possa se cadastrar no sistema, não necessitando do administrador), o sistema facilmente detecterá.

Se a sugestão acima não for interessante para o seu caso em concreto, é só dar um toque.

Abs.

wink.gif É isso ai amigo.

Na verdade eu dei a minha dica pensando no campo de login!!! rolleyes.gif

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.7k
    • Total Posts
      648.5k
×
×
  • Create New...