Página 1 de 1

Sequenciador de codigos

Enviado: 13 Jul 2015 08:25
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

Sequenciador de codigos

Enviado: 13 Jul 2015 09:23
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.

Sequenciador de codigos

Enviado: 13 Jul 2015 12:26
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.