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

Marcos Angeloni marcos.rossano em gmail.com
Sex Jan 27 09:12:37 -03 2006


O componente de controle de transação é o ibTransaction da paleta do
interbase(delphi).
Os parametros do ibtransaction estão como:
DefaultAction      = TACommitRetaining
Params              = READ_COMMITTED, REC_VERSION, NOWAIT
IDLETIMER                = 0
AUTOSTOPACTION  = SANONE
ALOWAUTOSTART   = TRUE

OS OUTROS PARAMETROS ACTIVE, NAME E DEFAULTDATABASE ESTAO CONFIGURADOS COMO
TEM QUE SER.


OBRIGADO.






Em 26/01/06, Fortes Marcelo <marcelosoftware em yahoo.com.br> escreveu:
>
> 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.<http://us.rd.yahoo.com/mail/br/tagline/homepage_set/*http://br.yahoo.com/homepageset.html>
>
>



Mais detalhes sobre a lista de discussão lista