Quando usar Post,commit, etc..

Delphi

10/10/2005

Bom Dia,

Tenho duas dúvidas que talvez algúem possa me ajudar a esclarecer:

1- Como estou utilizando dbExpress/Firebird 1.5 , utilizo o Applyupdates(-1) para gravar os dados que estão em cache. Então, minha dúvida é se tenho que também usar os métodos Post, Commit, RollBack(como fazia no Paradox) , e se sim, quando e em que eventos? Procurei estas respostas no fórum , mas não consegui nada definitivo e totalmente esclarecedor.

2 - Como fazer atualização realmente on-line no Banco de Dados, ou seja, tão pronto um usário efetue alguma inserção, alteração, etc, no Banco de Dados , quero que esta modificação fique automaticamente disponivel para todos os usários da rede. O que está acontecendo hoje é que as alterações efetudas por um usuário, só se tornam disponivel para outro, se os usuários fecham o aplicativo e abrem novamente.


Por enquanto é isto, desde já agradeço todas as repostas recebidas,


[]´s

José


Dli

Dli

Curtidas 0

Respostas

Adriano Santos

Adriano Santos

10/10/2005

Bom [b:b7ced8a68d]dli[/b:b7ced8a68d] não sou nenhum expert, mas vou tentar responder. Algum caramada da uma força.

1- Como estou utilizando dbExpress/Firebird 1.5 , utilizo o Applyupdates(-1) para gravar os dados que estão em cache. Então, minha dúvida é se tenho que também usar os métodos Post, Commit, RollBack(como fazia no Paradox) , e se sim, quando e em que eventos? Procurei estas respostas no fórum , mas não consegui nada definitivo e totalmente esclarecedor.


Em relação a isso, eu uso da seguinte forma:

TQuery.ApplyUpdates(-1);
TDataBases.CloseDataSets;


O CloseDataSets não fecha a tabela, apenas força a atualização dos dados no banco de dados. Pelo menos é assim que tem que funcionar.
Em relação ao Commit, Rollback eu uso assim:

  Try
    StartTransation; (no paradox acho que é BeginTransation, se me lembro bem);
    //meus comandos
    Commit;
   Except
     RollBack.
   end; 


Senão me falha a memória no site SQLMagazine vi uma dica dizendo que você pode usar o Commit em um TQuery, tipo:

   UPDATE TABELA SET CAMPO=VALOR;
   COMMIT;



Mas nunca testei não sei se funcinoa.


2 - Como fazer atualização realmente on-line no Banco de Dados, ou seja, tão pronto um usário efetue alguma inserção, alteração, etc, no Banco de Dados , quero que esta modificação fique automaticamente disponivel para todos os usários da rede. O que está acontecendo hoje é que as alterações efetudas por um usuário, só se tornam disponivel para outro, se os usuários fecham o aplicativo e abrem novamente.


Então, já respondi em cima. Usando o CloseDataSets tem que funcionar.

Se algum colega puder confirmar minhas informações ou até me corrigir, legal.


GOSTEI 0
Martins

Martins

10/10/2005

Blz Adriano!!!

questão respondida, nada a acrescentar.


GOSTEI 0
POSTAR