Sequenciador de codigos

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
nilv
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 25 Jan 2013 13:54
Localização: viçosa/MG

Sequenciador de codigos

Mensagem por nilv »

para fazer cadastros de clientes, mercadorias, utilizo vcodban := BAN->(DBGOBOTTOM(),codban+1) mas quando duas pessoas fazem o cadastro ao mesmo tempo na rede o sistema grava dois cadastro com o mesmo codigo, gostaria de saber se tem outro processo para trabalhar em rede que nao gere o mesmo codigo, Obrigado.
Nilson Vilela
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Sequenciador de codigos

Mensagem por Pablo César »

Oi Nilson,

Na minha época com Clipper, eu utilizaba um dbf exclusivo para essa finalidade. Tinha dois campos numéricos: INI e FIM. Eles guardavam de 1 até 99999 e conforme ia utilizando ficava 2 até 99999, 3 até 99999, 4 até 99999... e assim sucessivamente, conforme ia pegando um novo número. O tratamento de abertura e tratamento em rede, era normal como os outros dbfs. Quando eliminava o registro, eu retornava o número (por exemplo o número 2 e o ultimo pego era o 3 digamos ) então ficaria assim: adicionava mais um registro 3 até 3 e o outro registro continuava sendo 4 até 999999. Isso ajudava a que o numero ficasse vago outra vez.

Em HMG, que trabalha em Harbour e está atualizado na sua ultima versão, pode-se utilizar o campo do tipo incrmental que serve justamente pra isso. Para sempre adicionar +1, +5, +10 (conforme você configurar). Mas ele não trata o número recuperados ou vagos como o outro exemplo que citei.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Sequenciador de codigos

Mensagem por alxsts »

Olá!

Atualmente o DBF suporta campos do tipo autoincrement, que você pode utilizar. Mas para tabelas já existentes, teria que haver um processo de conversão. Use a busca do fórum para saber mais sobre autoincrement.
[]´s
Alexandre Santos (AlxSts)
Responder