[firebase-br] Dica sobre o IBO

RedDevil reddevil em reddevil.eti.br
Sex Ago 19 02:04:27 -03 2005


ola Dimas,


Post By Dimas - Pessoal:
> Minha ideia de tabela temporaria, seria para criar uma tabela onde cada
> terminal relacionece
> os itens de uma venda por ex. ai cada terminal estaria efetuando uma venda
> s/ se preocupar em fazer o relacionamento dos itens e no fechamento da venda
> faria toda processo de atualização de estoque e outros lançamentos... será q
> estou pensando totalmente errado...
[cut]

uma ideia que me ocorreu agora para essa tua historia ae seria voce 
criar no banco de dados, no servidor, uma tabela com a estrutura 
adequada, com todos os campos necessarios para o lançamento dos itens 
temporarios, etc e talz (sendo que dois campos dessa tabela seriam 
unicos, especiais... tipow assim um campo que identifique a 
estaçao/terminal, e outro que sirva para a sequencia dos itens que serao 
lançados na estaçao), e manter a tabela vazia, sem nenhum registro, e 
entao, nas aplicaçoes que rodam nas estaçoes, usar uma TIB_Query para 
dar um select de todos os itens que tenham a informaçao de que sao da 
estaçao existentes nessa tabela, de tal maneira que retorne para as 
estaçoes uma consulta vazia, e entao, nas estaçoes, ir inserindo os 
itens da venda, e tambem a informaçao que identifique a estaçao e a 
sequencia do item, nessa TIB_Query, dando Post na TIB_Query sem dar 
Commit no componente TIB_Transaction informado na TIB_Query, ate lançar 
todos os itens da venda... e entao, no fechamento da venda, voce fazer 
com que o teu sistema leia nessa TIB_Query, item por item, os 
lançamentos que tenham a informaçao de que sao da estaçao, faça as tuas 
atualizaçoes de estoque e os demais lançamentos, e apos concluir tudo, 
dar um Rollback no TIB_Transaction dessa TIB_Query, de modo que nada 
seja gravado na tabela que esta la no servidor, e ela permaneça vazia, 
para que todas as estaçoes possam ir repetindo essa historia sempre, a 
cada venda iniciada...

tente fazer algum teste usando essa ideia como principio... eu nao sei 
se essa ideia eh viavel, nem tenho como testar agora, pois aqui na 
batcaverna tem apenas um micro, nao tem uma rede para mim fazer uma 
simulaçao, mas eu acredito que se voce usar um isolamento transacional 
adequado, o qual, na minha opiniao, teria que ser o modo Concurrency, 
existem grandes chances de que a historia de certo, assim como exite a 
possibilidade de que nao de certo, de aconteçam erros de deadlock que 
transformem essa ideia em uma grande bola fora...

eh uma viagem daquelas que surgem assim, em um momento, a qual pode se 
transformar em magia ou em poeira...
;o)


[]s
força sempre.
ate +++

--
Luiz "RedDevil" Stefanski
http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
exemplos e dicas sobre o IBObjects:
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
compilaçao/instalaçao do IBObjects sabor BPG:
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630





Mais detalhes sobre a lista de discussão lista