Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Travar Registro Tabela (Rotina)
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Problèmes
Titre:
Travar Registro Tabela (Rotina)
Divers
Thread ID:
00867061
Message ID:
00867061
Vues:
82
SELECT 0
USE n:\banco\sequencial_real
SET ORDER TO chave_p

FOR a = 1 TO 500
    GO BOTTOM
    IF RECCOUNT() != 0
      GO BOTTOM
      trv = RLOCK(STR(RECNO()),"sequencial_real")
      DO WHILE !trv
         GO BOTTOM
         trv = FLOCK(STR(RECNO()),"sequencial_real")
         LOOP
      ENDDO
      m.sequ_ban = sequ_ban + 1
   ELSE
      m.sequ_ban = 1
   ENDIF
   INSERT INTO sequencial_real FROM MEMVAR
   UNLOCK IN sequencial_real
ENDFOR
Tenho a seguinte rotina acima, onde por exemplo várias máquinas na epoca de matrícula emitem um boleto ao mesmo tempo de vários alunos gerando um numero sequencial para cada um.
Então ocorre que o sequencial é único e para não haver duplicidade de sequenciais agente trava o ultimo registro da tabela, soma-se um a ele e grava ele na tabela e depois desbloqueia o registro, e mesmo assim ele está ocorrendo duplicidade na minha tabela quando 2 ou mais máquinas tentam gravar um sequencial ao mesmo tempo.
Gostária de saber se alguem tem alguma rotina melhor que está ou alguma solução para o meu problema.
Atenciosamente,

Thiago Oliveira Ferraz

Analista de Sistemas
Universidade de Uberaba (UNIUBE) - Campus Aeroporto
Tel: 0xx(34)3319-8906
Cel: 0xx(34)9136-1260
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform