GERAR CODIGO EM TEMPO REAL
Pois bem, ao fazer o cadastro de clientes no balçao, no ato do castastro
a varios terminais no mesmo Formulário, pois bem conforme a demora no cadastro o outo terminar ja vair estar com o codigo
gerado conforme cmdNovo +1 na tabela Clientes
Essa é a melhor maneira de gerar o código em tempo real
usar um Timer para fazer um (Refresh) na tabela pra pegar o ultimo que foi cadastrado.
Ex: do Timer
If (RS.RecordCount = 0) Then
txtPacienteID = 1
Else
RS.MoveLast
txtClienteID.Text = RS.Fields([Ô]ClienteID[Ô]) + 1
txtClienteID = Format(ClienteID.Text, 0)
End If
RS.Close
Grato
Nilton
a varios terminais no mesmo Formulário, pois bem conforme a demora no cadastro o outo terminar ja vair estar com o codigo
gerado conforme cmdNovo +1 na tabela Clientes
Essa é a melhor maneira de gerar o código em tempo real
usar um Timer para fazer um (Refresh) na tabela pra pegar o ultimo que foi cadastrado.
Ex: do Timer
If (RS.RecordCount = 0) Then
txtPacienteID = 1
Else
RS.MoveLast
txtClienteID.Text = RS.Fields([Ô]ClienteID[Ô]) + 1
txtClienteID = Format(ClienteID.Text, 0)
End If
RS.Close
Grato
Nilton
sabe minha dica é a seguinte ao se abrir o form de cadastro já cadastrar o codigo (ultimo + 1).
ou seja quando salvar o cadastro preenchido ao inves de dar um insert into vc faz um update
assim por mais preciso que todos sejam sempre os códigos serão diferentes.
ex:
vc abre o form e dá um [txt-color=#0000f0](insert into)[/txt-color]
assim se outro abrir segundos depois de vc o codigo será outro.
vc pode manter o form aberto o tempo que for, depois quando acabar de digitar, basta fazer um [txt-color=#0000f0]update[/txt-color]. naquele código e pronto.
vantagem: vc não precisa usar um timer.
desvantagem: se vc cancelar o cadastro, aquele numero ficará vago ( mas nada que não possa ser resolvido com alguma função)
ou seja quando salvar o cadastro preenchido ao inves de dar um insert into vc faz um update
assim por mais preciso que todos sejam sempre os códigos serão diferentes.
ex:
vc abre o form e dá um [txt-color=#0000f0](insert into)[/txt-color]
assim se outro abrir segundos depois de vc o codigo será outro.
vc pode manter o form aberto o tempo que for, depois quando acabar de digitar, basta fazer um [txt-color=#0000f0]update[/txt-color]. naquele código e pronto.
vantagem: vc não precisa usar um timer.
desvantagem: se vc cancelar o cadastro, aquele numero ficará vago ( mas nada que não possa ser resolvido com alguma função)
Ao invés de ficar usando Timer para pegar o último código, deixe paga pegar o código apenas na hora que for efetuar a gravação. Isso evita ficar acessando o banco de dados diversas vezes sem necessidade (se tiver 10 terminais e esses ficarem acessando o banco a cada x segundo deixará o trafego na rede lento). E o que garante que o terminal ira gravar o registro exatamente após uma atualização do Timer ? E se você for gravar e ainda não foi atualizado o último código livre ?
Nos meus sistemas eu deixo para pegar o último código livre no momento que vou fazer a gravação e após a gravação feita eu informo qual código foi utilizado para a gravação.
Flw,
Marcelo
Nos meus sistemas eu deixo para pegar o último código livre no momento que vou fazer a gravação e após a gravação feita eu informo qual código foi utilizado para a gravação.
Flw,
Marcelo
Problema é esse mesmo lentidão na rede, pois vai ficar fazendo loop cada um minuto
o jeito gerar mesmo na hora da gravação, a idéia é ja fornecer no ato o número ao cliente
para liberá-lo ao atendimento, sem ter que ficar esperqando o término do cadastro...
o jeito gerar mesmo na hora da gravação, a idéia é ja fornecer no ato o número ao cliente
para liberá-lo ao atendimento, sem ter que ficar esperqando o término do cadastro...
Pra essas coisas que os BDs tem autonumeradores, generators e etc. Esqueçam esse negócio de número vago. Um sistema em rede a integridade referencial vem em primeiro lugar.
Cara você está cometendo um erro bastante grave como nosso amigo LLAIA falou de integridade, as vezes você querer ficar remendando um sistema demais e ficar buscando praticidade demais para o usuário pode ocasionar um problema maior no futuro se não tiver bem implementado.
o que voce pode fazer pra liberar o cliente antes de terminar o cadastro seria, ao invez de gerar o Ultimo +1, voce poderia criar um campo separado, que poderá gerar um Numero aleatorio Ex 25ABX2 entao na hora de inserir voce deixa o ID automatico que ai nao tem erro..
Obrigado
Obrigado
Tópico encerrado , respostas não são mais permitidas