[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