[firebase-br] Conflito na hora de atualizar registro

John Klaus Kanenberg kanenberg em yahoo.com.br
Ter Maio 22 01:28:45 -03 2007


Eu também pensei em usar generator para gerar o auto-incremento, pois 
com certeza funcionaria muito melhor...

Mas o problema é que eu preciso saber qual é este valor no sistema para 
então gravar informações em 2 tabelas distintas (tipo master/detail) 
onde em cada uma desta tabelas é armazenado este valor para criar um 
vinculo entre as informações...

Eu já cheguei a conclusão que seria muito melhor utilizar o dbExpress, 
mas por ocasião migrar todo o sistema que roda simultaneamente em 
aproximadamente 12 estações sem nenhum problema exigiria tempo e este 
não está ao alcance, ficando para uma futura atualização do sistema.

Já vi que no dbExpress um recurso de capturar o valor do generator e 
depois utilizar este livremente... Seria isso posivel com DBX ?



INFOSAG escreveu:
> concordo.
> 
> eu faco assim tambem.
> 
> 
> ----- Original Message ----- 
> From: "Felype de Carvalho" <xslaiderx em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, May 22, 2007 12:50 AM
> Subject: Re: [firebase-br] Conflito na hora de atualizar registro
> 
> 
>     cara aconselho você utilizar o generetor para gerar o valor do campo
> auto incremento, é a melhor forma
> de não dar conflito na hora da geração do valor do campo, isto resolverá o
> problema do auto incremento.
> pelo seguinte fato com o IBTransaction você tem que confiura-lo, dando dois
> cliques no componente e
> escolhendo a opção configurado no seu banco de dados por exemplo ReadCommit
> assim as transações
> serão enviadas diretamente ao servidor e não ficarão somente na memória da
> máquina local, pois sem
> esta configuração as informações só serão enviadas ao banco de dados após
> finalizar a conexão com o
> mesmo, fechando o IBDataBase.
> 
>     Bom só queria deixar uma opinião, eu utilizava os componentes IBX para
> desenvolver os meus sistemas,
> mas resolvir mudar para o dbExpress, pois estava dando muitos problemas. O
> IBX é muito bom para funcionar
> em uma máquina somente. Optei em trocar os componentes para dbExpress, pois
> ele faz o processo direto de
> atualização das informações no banco de dados, mantendo assim as informações
> atualizadas em todas as estações.
> Esta é a minha opinião.
> 
> espero ter ajudado
> ----- Original Message ----- 
> From: "John Klaus Kanenberg" <kanenberg em yahoo.com.br>
> To: <lista em firebase.com.br>
> Sent: Tuesday, May 22, 2007 12:01 AM
> Subject: [firebase-br] Conflito na hora de atualizar registro
> 
> 
> Caros amigos,
> 
> Em um sistema que desenvolvi, utilizo uma tabela para gravar um valor de
> referência em um determinado campo (simulando um generator/trigger via
> programação)...
> 
> Este sistema roda em rede com ambiente windows, servidor win2k com
> firebird 1.5, com vários usuários gravando registros simultaneamente...
> 
> Funciona bem, mas em certas operações do sistema este grava um elevado
> numero de registros sequenciais no banco de dados, e a cada novo
> registros o sistema faz um select na tabela de referência, pega o valor
> e dá um update incrementando este... Mas como este processo acaba se
> tornando muito rápido e algum outro cliente tentar dar update na tabela
> de referência acaba dando conflito !!!
> 
> Qual seria a melhor opção para resolver este problema, uma vez que o
> sistema precisa do valor de referência (auto-incremento) antes de gravar
> as informações simultaneamente em 2 outras tabelas, e ao mesmo tempo
> vários cliente aleatoriamente precisam alterar (update) o valor de
> referência.
> 
> Utilizo Delphi 7 com acesso ao banco de dados utilizando componentes IBX
> (TIBDatabase/TIBTransaction/TIBQuery).
> 
> Desde já agradeço pela ajuda dos amigos.





Mais detalhes sobre a lista de discussão lista