[firebase-br] Aviso de conflito de registro no interbase 7.0.1

Fortes Marcelo marcelosoftware em yahoo.com.br
Qui Jan 26 20:48:50 -03 2006


Você tem que checar a a configuração de resolução de travamento de transação do sua classe de controle de transações ou do seu dataset conforme o componente de acesso que você usar, acredito que você esteja usando o IBX.
   
  Se estiver configurada a transação para NOWAIT as outras transações irão retornar um erro imediatamente ao tentar fazer um update em um registro ou linha que está sendo utilizada por uma transação mais antiga.
   
  O que deve estar acontecendo, eu suponho, é que você tem suas transações configuradas como WAIT.
   
  Se o travamento estiver configurado como WAIT as outras transações irão esperar  até a primeira transação finalizar então irá prosseguir.
   
  Observe, que não são os componentes ou as classes de acesso que definem isso. Tudo é gerência do InterBase. Os componentes dão a interface de controle de como gerir as transações.
   
  Sugiro que estude bem e compreenda na íntegra o modelo de concorrência e travamento (Lock) do InterBase que ó o mesmo do Firebird, garante com certeza até uma aplicação mais rápida e segura.
   
  Estude sobre:
   
  Resolução de travamento e Modos de acesso:
  concurrency (snapshot), consistency (table stability), write, read, wait, nowait.
   
  O Cantu Escreveu um artigo excelente sobre as transações so site dele, tem uma do Claudio Valderrama que explica bem também: http://www.firebase.com.br/fb/artigo.php?id=232
   
  Bill Todd da Borland InterBase TeamB explana em detalhes (em inglês):
  http://bdn.borland.com/borcon2004/article/paper/0,1963,32280,00.html
   
  Marcelo Fortes.

Marcos Angeloni <marcos.rossano em gmail.com> escreveu:
  Pessoal,
estou enfrentando um problema com o interbase quanto a avisar quando um
mesmo registro está sendo usado por mais de um usuário.
acontece que o interbase nao avisa que está dando o conflito em modo de
execução no cliente(usuario) com o executável do sistema.

por exemplo:
Quando um usuario vai fazer uma movimentação de caixa na empresa e ao
mesmo tempo outro usuário faz uma venda onde esta venda inclui um movimento
de caixa(pagamento com entrada). Ao tentar gravar a venda acontece erro de
conflito de chave primária ou de registro locado(lock).

isso eu descobri debugando a aplicação pelo delphi.

O que fazer para que o interbase avise que existe o conflito de registro e o
conflito de chave primária?

Obrigado;
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
  


		
---------------------------------
 Yahoo! doce lar. Faça do Yahoo! sua homepage.


Mais detalhes sobre a lista de discussão lista