Atualizar dados em tempo real sem REFRESH. Como?
Caros colegas, estou desenvolvendo um sistema de controle de estoque usando o banco de dados Interbase. Gostaria de saber, como eu faço para atualiza dinâmicamente uma tela quando dois usuários estiverem usando a mesma.. Ex: dois usuário abre em uma maquina o cadastro de produtos. A descrição desse produto é ´PRODUTO 1´ fictício, os dois usuários estão vendo o mesmo produto. Um usuário muda a descrição para ´PRODUTO-1´ o utro usuário ver a alteração de imediado na outra instação. Eu fazia este procedimento usando um REFRESH em um time q verificava o estado (dsbrowse), mas estava causando uma certa instabilidade no sistema - o mesmo ficava um pouco lento.
A dúvida é, como fazer isso de uma forma mais profissional - Detectar dinâmicamente as mudanças ocorridas em uma tabela. e mostrá-la em tempo real.
obs: Uso a paleta Interbase (IbDataBases, IbTransaction, IbTables).
Grato a todos.
A dúvida é, como fazer isso de uma forma mais profissional - Detectar dinâmicamente as mudanças ocorridas em uma tabela. e mostrá-la em tempo real.
obs: Uso a paleta Interbase (IbDataBases, IbTransaction, IbTables).
Grato a todos.
Cmtbravo
Curtidas 0
Respostas
Adriano_servitec
29/01/2007
Eu fazia este procedimento usando um REFRESH em um time q verificava o estado (dsbrowse), mas estava causando uma certa instabilidade no sistema - o mesmo ficava um pouco lento.
Ja que vc esta usando o IBtransaction vc tentou usar a proriedade [b:07b92692a5] IdleTimer [color=blue:07b92692a5] (Tempo que executará a ação de DefaultAction)[/color:07b92692a5] [/b:07b92692a5] e mudar tambem a propriedade [b:07b92692a5] DefaultAction [color=red:07b92692a5]:= TaCommitRetaining[/color:07b92692a5][/b:07b92692a5] e dar dois cliques no ibTransaction e marcar a opçao [b:07b92692a5]Read - Committed[/b:07b92692a5] Acho que depois de feito isso vc pode dar o refresh depois de usar o post o ibTable, sem precisar usar um timer para isso.
Tenta ai qualquer coisa eh soh postar.
GOSTEI 0
Gandalf.nho
29/01/2007
Você pode tentar fazer uso de eventos no banco de dados que iriam sinalizar sua aplicação de alterações na tabela.
Além disso, para melhor performance, não use o IBTable, use o IBDataset ou IBQuery (tables não são recomendados em ambiente cliente/servidor).
Além disso, para melhor performance, não use o IBTable, use o IBDataset ou IBQuery (tables não são recomendados em ambiente cliente/servidor).
GOSTEI 0
Cmtbravo
29/01/2007
já usei todas as opções acima, porém sem efeito... Acho que vou ter q retomar o refresh novamente.
GOSTEI 0