raphael.sx Postado Agosto 3, 2004 Denunciar Share Postado Agosto 3, 2004 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ricardo_sdl Postado Agosto 3, 2004 Denunciar Share Postado Agosto 3, 2004 Você pode definir o nome do usuário como atributo chave a tabela. Se bem que eu acho(mas não tenho certeza) que não é bom colocar nomes(strings) como atributos chaves. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Agosto 3, 2004 Denunciar Share Postado Agosto 3, 2004 você esta usando componentes TQuery ???? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Frank Postado Agosto 4, 2004 Denunciar Share Postado Agosto 4, 2004 voce pode fazer assimtable1.fieldsindex="NOMEUSUARIO";if not Table1.findkey(ednomeusuario.txt,[]) thenbegin //Grava;end elsebegin//Não Grava..end;Acho que é + ou - isso qualquer coise me contate por e-mail que posso testarou MSN brunofranks_2003@hotmail.comFALOW Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arlon Postado Agosto 5, 2004 Denunciar Share Postado Agosto 5, 2004 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; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Francenelson Postado Agosto 6, 2004 Denunciar Share Postado Agosto 6, 2004 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 assimWhere 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Agosto 6, 2004 Denunciar Share Postado Agosto 6, 2004 Realmente é uma situação complicada eheehehAté porquê Rogerio(sem acento) é diferente de Rogério(com acento)....Tambem acho a ideia da query válida... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Agosto 6, 2004 Denunciar Share Postado Agosto 6, 2004 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Capablanca Postado Agosto 7, 2004 Denunciar Share Postado Agosto 7, 2004 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Agosto 7, 2004 Denunciar Share Postado Agosto 7, 2004 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. É isso ai amigo.Na verdade eu dei a minha dica pensando no campo de login!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
raphael.sx
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
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.