 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
t3r3son Novato

Registrado: Domingo, 28 de Janeiro de 2007 Mensagens: 36 Localização: Paranaiba - MS
|
Enviada: Qui Set 19, 2013 2:54 pm Assunto: Problema ao atualizar banco |
|
|
Imaginem a seguinte cena: um usuario efetuando vendas no pdv e outro com uma tela de cadastro de produtos efetuando manutenção (alteração). o segundo pega o produto 1 e fica com a tela em aberto. o primeiro efetua venda do produto 1. no inicio o estoque era 10 e após a venda de 1 unidade ficamos em 9. acontece que o segundo usuario grava as informações q ele tinha na tela. pergunta-se qual o estoque ficará gravado: 10 ou 9??? e se for 10, como evitar que isso aconteça?? |
|
Voltar ao Topo |
|
 |
thomazs Moderador


Registrado: Segunda-Feira, 1 de Março de 2004 Mensagens: 2835
|
Enviada: Qui Set 19, 2013 3:46 pm Assunto: |
|
|
Depende um pouco de como foi implementado seu sistema, mas no caso que você exemplificou, ficaria 10, ou seja, iria substituir o estoque, voltando ao que estava antes da venda. Existem diversas formas de implementação no sistema, e também através de lock de registros (travamento pessimista). Apesar de não gostar muito desse segundo (travamento pessimista), resolveria de forma "rápida" seu problema. Uma idéia é ter um controle com o timestamp do registro e, antes de gravar, verifica o timestamp e, caso sejam diferentes (o que está na tela do que está no banco) avisa que precisa ser atualizado.
O caso do travamento funciona, porém, se o primeiro mantiver a tela aberta, o segundo não conseguiria lançar a venda, até que a transação do primeiro seja concluída. _________________ Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django |
|
Voltar ao Topo |
|
 |
t3r3son Novato

Registrado: Domingo, 28 de Janeiro de 2007 Mensagens: 36 Localização: Paranaiba - MS
|
Enviada: Qui Set 19, 2013 3:57 pm Assunto: |
|
|
Travamento pessimista eu uso ainda no clipper. Não é a melhor opção realmente, por isso postei o topico. Se souber uma forma mais prática do que essa e puder compartilhar, agradeço. |
|
Voltar ao Topo |
|
 |
thomazs Moderador


Registrado: Segunda-Feira, 1 de Março de 2004 Mensagens: 2835
|
Enviada: Qui Set 19, 2013 4:22 pm Assunto: |
|
|
Pois é... então você poderia pensar em usar um timestamp (também usado no clipper heheh), ou então, elencar os campos que podem sofrer alteração da equipe de cadastro. _________________ Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|