GRAVANDO REGISTRO SIMULTANEIO

HUBER.FABIO 23/07/2011 16:10:47
#379830
Caros amigos ! dúvida simples porém estou com dificuldades

Tenho um cadastro de clientes onde ao gravar eu uso um select para achar o último código cadastrado e criar um próximo. Acontece quando 2 usuário estão cadastrando ao mesmo tempo e pressionam gravar quase juntos acurra um erro. Tem algum comando que possa usar para previnir isso.
MARCELO.TREZE 23/07/2011 16:40:07
#379831
na realidade o erro o ocorre porque os dois funcionarios sem querer acabam gerando o mesmo numero sequencial e um deles irá até salvar mas o que pressionou o botão depois tentará salvar o mesmo id.

para contornar este problema eu faço o seguinte

Abro a tela de cadastro gero o numero sequencial( como vc está fazendo mesmo) e já salvo com os demais dados em branco, e o numero mantenho na tela no meu campo ID, depois preencho todo o cadastro e ao invés de fazer o insert(que eu já fiz quando abri a telaeu faço um update baseado no numero que esta no meu campo ID.

em miudos

abre o formulário --> gera o numero sequencial---> salva no banco---> armazena o numero no campo dele mesmo --> e ao preencher o cadastro faz um update baseado no numero.

com o procedimento, será quase impossivel 2 funcionários abrirem ao mesmo minuto e segundo o mesmo id.

bom pra finalizar:

da maneira que vc esta fazendo, vc cria o numero sequencial porém este fica no programa, ou seja vc abre seu programa aqui e gera o numero 7e vai preenchendo os campos enquanto vc preenche um outro funcionario abre a tela de cadastro e gera um novo numero, e faz isso baseado no banco de dado, como vc ainda não preencheu seu cadastro todo e não salvou, no banco de dados ainda está o cadastro 6, então este outro funcionário terá também o numero 7,o que causa o erro, entendeu.

HUBER.FABIO 23/07/2011 16:52:17
#379833
Ok entendi ....até pensei em fazer dessa forma , não já no próprio formulário mais sim em uma outra tabela criada para armazenar números sequenciais das tabelas. ou seja. crio uma tabela e lá campo códido do cliente..quando o usuário dá o incluir no cadastro eu ia pega esse número como ID e já colocar na tela e já somar + 1 ..caso outro usuário da incluir já pegaria um próximo número.

Dúvida: caso algum deles aborte a inclusão, o número que havia pegado fica perdido ???

usuário 1 clico em incluir (pego código 3 e somo + 1)
usuário 2 clico em incluir (pego código 4 e somo + 1)

caso usuário 1 aborte o código 3 ficará perdido já que o próximo usuário clicar irá pega o código 5
MARCELO.TREZE 23/07/2011 17:14:21
#379834
sim isso pode acontecer.

a segunda opção então será a mais segura

gere o numero sequencial somente na hora de salvar os registros, será melhor assim, não correrá riscos ao salvar



LLAIA 23/07/2011 19:06:04
#379843
Tudo isso pode ser resolvido com auto-numeração. A não ser que essa sequência que vc cria tenha uma formatação bem específica.
Tópico encerrado , respostas não são mais permitidas