Iniciar uma Transação
Buscar o valor do último codigo e somar + 1
Fazer um Insert com o novo código
O usuario preenche os campos
Atualizar os campos da tabela com os campos que o usuário preencheu
Commitar a transação
Até ai beleza! ai eu peguei o conceito (errado ou certo, mas peguei rs** )
Só que, se um usuário começar a fazer um cadastro e segundos depois ou outro usuário
começar a fazer um outro cadastro em outra estação o código vai ser o mesmo pois a
transação do primeiro usuário não sofreu o commit ainda, ai terei problemas…
A solução deve ser mais fácil que explicar né? rs***
Iniciar uma Transação
Buscar o valor do último codigo e somar + 1
Fazer um Insert com o novo código
O usuario preenche os campos
Atualizar os campos da tabela com os campos que o usuário preencheu
Commitar a transação
Até ai beleza! ai eu peguei o conceito (errado ou certo, mas peguei rs** )
Só que, se um usuário começar a fazer um cadastro e segundos depois ou outro usuário
começar a fazer um outro cadastro em outra estação o código vai ser o mesmo pois a
transação do primeiro usuário não sofreu o commit ainda, ai terei problemas…
A solução deve ser mais fácil que explicar né? rs***
Alguém pode ajudar?
Valeu![/quote]
Você poderia fazer algo assim… quando um usuário estiver alterando o banco, vc torna a base de dados acessível só para consulta… não sei como fazer isso…
Talvez a seqüência não a melhor. Não é a solução, mas já ajuda. Ao invés de:
use:
1 - Iniciar a transação
2 - O usuário preenche os campos
3 - Imediatamente antes de executar o Insert você pega o próximo código
4 - Executar o Insert
5 - Commit
Mas a melhor solução para esse tipo de coisa é deixar o banco resolver o problema. Use autoincremento ou sequence. No segundo caso funciona mais ou menos igual, você dá um select na sequence e ela incrementa, assim você já tem o código para mostrtar se precisar e outro usuário não o pega mais.
Dependo do seu banco e do tipo de aplicação que você tá fazendo. Nesse momento estou num cliente que abre os para serviços, é parecido, eu preciso gerar o número da OS, mas só uma pessoa faz isso. Logo não existe essa preocupação.
Se fosse você evitaria lock de tabela e coisas do tipo, o pessoal que gosta de imploementar tudo na mão é que gosta disso. :lol: Mas ainda assim acho que deependa da aplicação.