Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda!


raphael.sx

Pergunta

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 para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 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 brunofranks_2003@hotmail.com

FALOW

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...