1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Usuários Gravando Registros ao mesmo tempo

Discussão em 'Progress 4GL' iniciado por alexandrezakarias, Outubro 30, 2018.

  1. alexandrezakarias

    alexandrezakarias Membro Participativo

    Boa tarde.

    Temos aqui, um registro de televendas, onde 3 pessoas, precisam gravar na mesma tabela, informações enquanto estão em contato telefônico com o cliente, um formulário, esta tabela tem um único campo chave, chamado de "ocorrencia".
    Obviamente se os 3 usuários, abrirem o programa e começarem a criar o registro, eles estarão criando com o mesmo número de ocorrência e somente o primeiro que acabar de preencher o formulário e finalizar, irá obter aquela chave.

    Vocês já passaram por isso? algum exemplo? algum link aqui do fórum que eu não tenha localizado?

    Obrigado!
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Usa SEQUENCE no banco de dados pra atribuir no campo chave que isso nunca mais vai ocorrer.
  3. alexandrezakarias

    alexandrezakarias Membro Participativo

    Ótimo!
    Funcionou, muitíssimo obrigado.
    Abrass
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Outra coisa,
    O ideal é não exibir o número da "ocorrência" antes ou durante o cadastro, somente ao concluir...isso faz parte das boas práticas e a totvs mesmo não segue em alguns programas.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Nem seria o caso de exibir, mas sim de só obter o numero na hora de gravar o registro, dai nem precisaria usar sequence, faria um find last, chave + 1, faz um can-find pra ver se já não usaram, se usaram, faz +1, se está livre salva, não sou fã do sequence porque ele pula a sequencia, caso o usuario clique em cancelar ao inves de salvar, claro, vai depender de como está escrito o programa.
  6. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Por isso que eu disse pra não exibir nada, só na hora de efetivamente gravar que pega o valor e pronto, dessa forma nunca vai pular.
    É assim que todos bancos de dados grandes funcionam: Oracle, Postgress, SQL Server, MySQL, todos tem campo AUTO_INCREMENT.

Compartilhe esta Página