Fórum Velocidade com Interbase #220652

17/03/2004

0

Olá amigos programadores.

Eu desenvolvi um sistema de PDV, que gerencia várias vendas simultâneas. O aplicativo fica instalado em terminais e quando um usuário inicia um venda em um deles, um indicador deve acusar isso nos demais.

Eu utilizo o Interbase 6 como base de dados, e a forma que descobri para atualizar os dados nos terminais em tempo real, ou seja, quando alterações forem feitas, foi fechar e abrir a transação responsável pelo controle dos dados. Eis o meu problema: sempre que a transação fecha, as tabelas fecham junto. E com isso, toda vez que preciso acessar uma delas com muitos dados, o processo é muito lento. Por exemplo, o usuário quer inserir um produto na venda, mas a tabela do estoque foi fechada, então a busca pelo item demora vários segundos, o que não ocorreria se a tabela ficasse aberta durante toda a execução do programa, pois bastaria eu ´dar´ um ´Last´ no DataSet para que os dados fossem carregados para a memória do terminal. Mas como a tabela fecha a cada 5 segundos...

Eu pensei em colocar um objeto exclusivo para o IBDataSet do estoque, mas para isso seria necessário alterar vários trechos do código ao longo do fonte do programa.

Por isso recorri a este fórum, que já me ajudou muito em várias ocasiões.
Se alguém souber de uma alternativa para acelerar a pesquisa, ou qualquer outra sugestão, eu ficaria muito grato.

Agradeço qualquer ajuda, amigos!

Abraços,
Michael :-)


Michael

Michael

Responder

Posts

17/03/2004

Gasper

Cara, não entendi direito o seu problema, mas se vc estiver usando os componentes da paleta do Interbase, existe dois comandos para finalizar uma transação.

Commit -> Fechas todas as transações, e todas as tabelas...
CommitRetaining -> Fecha a transação atual, e não fecha as tabelas...


8)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar