Quando usar Post,commit, etc..
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é
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
Curtidas 0
Respostas
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.
Em relação a isso, eu uso da seguinte forma:
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:
Senão me falha a memória no site SQLMagazine vi uma dica dizendo que você pode usar o Commit em um TQuery, tipo:
Mas nunca testei não sei se funcinoa.
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.
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
10/10/2005
Blz Adriano!!!
questão respondida, nada a acrescentar.
questão respondida, nada a acrescentar.
GOSTEI 0