Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Lau13

Gerar um Código Único

Mensagens Recomendadas

Lau13

Boa tarde, estou a desenvolver um projeto e gostaria que me pudessem ajudar.

Tenho uma tabela funcionários (mysql) e na minha aplicação ao inserir um novo funcionário gostava que para essa mesma password tivesse uma variável, onde atribuísse esse valor a ele, mas que esse mesmo valor nunca se repetisse.

Eu já fiz isto em C mas em VB.Net não sei como proceder.

Alguém me pode ajudar?

Editado por Lau13

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nelson Sousa

Olá,

Talvez se antes de inserir um novo funcionário, fizesse uma consulta com a nova password ao banco de dados. Se a consulta retornasse algum registro é porque a mesma já existe no banco de dados. Dessa forma poderia solicitar outra password ao usuário.


Um Abraço,

Nelson Sousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Lau13

Desde já obrigado por me estarem a ajudar, mas Nelson Sousa eu não quero fazer uma verificação apenas quero que ele me gere um numero que nunca seja repetido.

Nuno Dinis essa função random pode vir a gerar um numero igual?

Também gera letras ou só gera números?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Random, per se, só gera números.

E sim, há uma altíssima probabilidade de se repetirem.

Qual seria o tamanho de chave que tens em mente?

Podes gerar códigos únicos a partir do relógio, ou até mesmo UUID (GUID no mundo da Microsoft).

Vai depender do tamanho que queres. GUIDs, por exemplo, são muito compridos, mas é quase garantido que não vais ver uma repetição enquanto fores vivo.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nelson Sousa

Bom,

Se o campo é numérico e precisa que não se repita, o ideal é usar o autoincrement. Basta formatá-lo depois para que apresente a quantidade de dígitos que lhe convier. O problema é que você não terá como influenciar a geração de novos números, o banco de dados se encarregará disso.

Outra opção, ainda com campos numéricos, é que o tenha registrado em alguma tabela e ao resgatá-lo somar +1.

Aqui no Brasil temos outra opção que é usar o número do CPF(Cadastro de Pessoas Físicas) que é único de cada cidadão.


Um Abraço,

Nelson Sousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
samesdavis

Além de utilizar o Random, deixe uns 5 campos na tabela, e ao gerar o numero o sistema irá verificar nesses 5 campos se esse numero gerado já foi usado alguma vez, se não foi usado, grava no próximo campo, se foi usado, dá o aviso. Mas para isso vc terá de ter além dos 5 campos, mais 5 campos com as datas em que a senha foi gravada para aquele campo.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nelson Sousa

Espera um pouco...

Acho que agora que entendi a coisa.

Você está querendo usar um campo numérico de 8 dígitos como senha?!?!?!

Esqueça, com um pouco de paciência qualquer usuário pode quebrar a segurança!!!


Um Abraço,

Nelson Sousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Lau13

Desde já obrigado a todos, mas já sei como vou fazer. Sim Nelson Sousa pode quebrar a segurança mas a Senha depois pode ser alterada. Para o efeito basta usar Random.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.