BLOQUEIO DE REGISTRO PARA EDICAO/GRAVACAO
Boa Noite Amigos
Criei uma rotina onde irei gerar um numero automatico de fatura.Toda vez que for gravar a fatura eu pesquisarei uma tabela que contem a numeracao e entao pegarei esse numero e somarei +1, para ter o proximo numero de fatura.
Entretanto o meu sistema roda em rede, portanto pode ser que mais de um usuario mande gravar ao mesmo tempo, portanto eu gostaria de bloquear o registro dessa tabela que contem o contador para que mais ninguem pudesse utilizar o numero que um usuario pegar em determinado momento, para evitar e claro 2 faturas com o mesmo numero.
Estou usando o VB6 com SQL Express 2005.
Obrigado e um Abraco
Criei uma rotina onde irei gerar um numero automatico de fatura.Toda vez que for gravar a fatura eu pesquisarei uma tabela que contem a numeracao e entao pegarei esse numero e somarei +1, para ter o proximo numero de fatura.
Entretanto o meu sistema roda em rede, portanto pode ser que mais de um usuario mande gravar ao mesmo tempo, portanto eu gostaria de bloquear o registro dessa tabela que contem o contador para que mais ninguem pudesse utilizar o numero que um usuario pegar em determinado momento, para evitar e claro 2 faturas com o mesmo numero.
Estou usando o VB6 com SQL Express 2005.
Obrigado e um Abraco
1. Coloca um campo [Ô]Status[Ô] na tabela que contem a numeração. Ex.
0 - Desbloqueio,
1 - BloqueioAdd,
2 - BloqueioEdit,
2. O código da fatura será gerado quando salvar a fatura. Assim Dois usuários podem preencher a fatura ao mesmo tempo, sem aguardar um finalizar. Note que o processo de gravação é feito em segundos e dificilmente dois usuários vão está gravando o mesmo segundo.
3. Quando Add, apenas altera o status para BloqueioAdd. Pode-se até implementar para saber o nome do usuário que está fazendo a operação, adicionando o campo user nesta tabela.
4. Quando gravar, verifica o status. Se 1 - BloqueioAdd, faz um loop com intervalo timer para tentar gravar nos cinco segundos seguintes, em uma tentativas a cada segundo. Caso não grave nesse intervalo, sai do loop, para evitar travar e pede para o usuario tentar novamente.
5. Quando Editar, não será possÃvel mudar a numeração, então esse BloqueioEdite terá a finalidade de evitar que dois usuário edite a mesma fatura ao mesmo tempo. Neste caso, se o Status for 2 - BloqueioEdite, Vai dá a mensagem que a fatura já está sendo editada. Se colocou o campo user, ainda vai informar quem está editando.
6. Após cada operação finalizada com sucesso, muda o Status para 0 - Desbloqueio.
0 - Desbloqueio,
1 - BloqueioAdd,
2 - BloqueioEdit,
2. O código da fatura será gerado quando salvar a fatura. Assim Dois usuários podem preencher a fatura ao mesmo tempo, sem aguardar um finalizar. Note que o processo de gravação é feito em segundos e dificilmente dois usuários vão está gravando o mesmo segundo.
3. Quando Add, apenas altera o status para BloqueioAdd. Pode-se até implementar para saber o nome do usuário que está fazendo a operação, adicionando o campo user nesta tabela.
4. Quando gravar, verifica o status. Se 1 - BloqueioAdd, faz um loop com intervalo timer para tentar gravar nos cinco segundos seguintes, em uma tentativas a cada segundo. Caso não grave nesse intervalo, sai do loop, para evitar travar e pede para o usuario tentar novamente.
5. Quando Editar, não será possÃvel mudar a numeração, então esse BloqueioEdite terá a finalidade de evitar que dois usuário edite a mesma fatura ao mesmo tempo. Neste caso, se o Status for 2 - BloqueioEdite, Vai dá a mensagem que a fatura já está sendo editada. Se colocou o campo user, ainda vai informar quem está editando.
6. Após cada operação finalizada com sucesso, muda o Status para 0 - Desbloqueio.
Tópico encerrado , respostas não são mais permitidas