Fórum Bloquear registro #42930
09/03/2004
0
Tenho que desenvolver um programa simples para vendas de produtos em congressos, e para o mesmo tenho que utilizar o interbase 6 como bando de dados. Não tenho muita experiência com este banco de dados e estou tendo algumas dúvidas. Ao vender um determinado produto, tenho que baixa-lo no estoque imediatamente para que o saldo esteja sempre atualizado se por motivo outro vendedor tentar vender este mesmo produto. Meu maior problema é que o interbase trabalha com sistema de travamento otimista, e por exemplo, dois vendedores acessam um determinado produto, e no estoque consta um saldo de 100, se os dois vendessem 100 e confimassem a venda ao mesmo tempo o que aconteceria ? Num sistema de travamento pessimista como o Clipper, o segundo vendedor só conseguiria vender o produto após o primeiro liberar o produto. Como resolver este problema no Interbase ? Gostaria que alguém pudesse me ajudar. Todas as sugestões são bem vindas.
Um abraço e obrigado desde já.
m_gab.
Um abraço e obrigado desde já.
m_gab.
M_gab
Curtir tópico
+ 0
Responder
Posts
10/03/2004
Afarias
Não sei se ´bloqueios pessimistas´ seria a melhor solução para vc...
MAS... você pode sim usar ´bloqueios pessimistas´ no IB, basta editar o registro e postar! o registro fica bloqueado até o commit ou rollback!
ex:
Query.Edit;
Query.CampoTal.Value := Query.CampoTal.Value;
Post; // aqui o registro é bloqueado
Bom, no Fb 1.5 vc pode fazer isso explicitamente usando SELECT FOR UPDATE e SELECT FOR UPDATE WITH LOCK ... dê uma olhada no RELEASE NOTES do FB 1.5
T+
MAS... você pode sim usar ´bloqueios pessimistas´ no IB, basta editar o registro e postar! o registro fica bloqueado até o commit ou rollback!
ex:
Query.Edit;
Query.CampoTal.Value := Query.CampoTal.Value;
Post; // aqui o registro é bloqueado
Bom, no Fb 1.5 vc pode fazer isso explicitamente usando SELECT FOR UPDATE e SELECT FOR UPDATE WITH LOCK ... dê uma olhada no RELEASE NOTES do FB 1.5
T+
Responder
Gostei + 0
11/03/2004
M_gab
Não sei se ´bloqueios pessimistas´ seria a melhor solução para vc...
Poderia dar uma sugestão de como fazer ?
Agradeço desde já.
m_gab.
Poderia dar uma sugestão de como fazer ?
Agradeço desde já.
m_gab.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)