[firebase-br] Invalid Cursor
Rodrigo
dominio em engeplus.com.br
Ter Set 1 08:23:35 -03 2009
Bom dia a todos,
Estou tendo um problema desde sexta feira passada referente a falha nos
valores do estoque. Tenho um outra tabela que registra todos os movimentos
do estoque e percebi que realmente era alguma falha. Então, comecei a fazer
testes e percebi que se em determinado momento dois usuarios vendessem o
mesmo produto ele nao baixava uma das vendas no Estoque. Uso IBO e Firebird
2.5. Até entao estava usando as transações de forma "otimista" achando que
isso seria muito dificil de acontecer visto que eu projetei o sistema para
iniciar a transação e comittar apenas quando o cliente clicasse no botao
gravar. Então mudei a opção do IBOTransaction, na Opção Isolation para
Comitted (No Rec.Version). Entao comecei a fazer os testes e isso seria o
que eu precisava, visto que apareceria uma mensagem dizendo que a operação
estava travada por outro usuario e eu daria a opção de o usuario tentar
novamente o processo de gravação. Porém começou a aparecer a seguinte
mensagem:
SQL Error Code= -504
Invalid Cursor Reference
Cursor Is Not Open
E esse erro continuou a ser constantes e na tentativa de continuar a venda,
da outros erros e fecha a janela de vendas.
Procurei no google e não achei, procurei no release notes do firebird e la
diz que é um erro de SQLState24 sem dar muitas explicações. "The cursor
identified in the UPDATE,DELETE, SET, or GET statement is not positioned on
a row".
Em outro email Sandro me indicou criar uma nova base de dados no firebird
2.1 e usar um pump para transferir os dados. Fiz isso, e testei na rede e
deu o mesmo problema. Lembrando que o erro só acontece quando dois usuarios
tentam acessar o mesmo registro na rede. Se usar monousuario ou se nao
estiverem atualizando o mesmo registro, o erro não acontece.
Se alguem ja passou por isso e puder me ajudar ou tiver alguma dica.
Agradeço muito.
Grato
Rodrigo
Mais detalhes sobre a lista de discussão lista