Array
(
)

ZeosLib Delphi 7 Firebird/Interbase

Camussica
   - 06 dez 2005

Olá gente!!!! Estou tendo uma enorme dificuldade em desenvolver uma aplicação Cliente/Servidor utilizando ZEOS. Pois a aplicação não atualiza, as inserções e nem as alterações... Gostaria se possível um exemplo.

Em relação o AutoCommit tem q ficar true mesmo???

Desde já Agradeço...

[ ]´s :roll: :x :shock:


Romulocpd
   - 06 dez 2005

Olá,

Verifique a propriedade RequestLive pois quando usei tinha um problema com esta propriedade. Hoje em dia eu faço gravações e atualizações usando Classes e meus problemas acabaram! Nada de DataModule!

Abração

Romulo Oliveira
Macaé/RJ


Camussica
   - 06 dez 2005

Ok, mais o problema em relação a não salvar é na estação cliente, por exemplo, altero em determinada máquina da rede, e em outros PCs, a alteração não é concluida...


Romulocpd
   - 07 dez 2005

Nâo seria problema de transações?


Camussica
   - 07 dez 2005

Penso q sim, pois nunca havia utilizado transações... Se ñ for pedir muito teria algum exemplo q possa me enviar???

Desde já Agradeço...


Eniorm
   - 07 dez 2005

eu uso IBX/MDO e sempre configuro a transação para ReadCommited pois assim evita que aconteça o mesmo problema que vc vem enfrentando.... agora, no Zeos eu não sei como configurar isso.


Romulocpd
   - 08 dez 2005

Olá,

Não tenho o Delphi aqui mas no objeto TZConnection você tem o ISOLATIONLEVEL para saber o nível de isolamento das transações. Deixe para READCOMMITED pois desta forma você só irá enxergar dados de transações já confirmadas de outras conexões, e evitará leituras fantasmas de dados.

Para usar é muito simples. Antes de executar o seu comando SQL para incluir, alterar ou excluir dados você faz:

ZeosConexao.STARTTRANSACTION; Desta forma tá iniciada.

Eu aconselho vc sempre executar os comandos SQL com try/except para pode ficanlizar corretamente as transações. Assim:

var
Erro: Boolean;
begin

ZeosConexao.StratTransaction;

Try
ZeosDataSet.ExecSQL;
Except
begin
ZeosConexao.RollBackTransaction;
Erro := true;
end;
end;

if Erro = false then
ZeosConnection.Comit;


Veja amigo que o codigo pode estar completamente errado pois estou sem o Delphi (trabalho com o VB o dia todo!), por isso nao lembro exatos os comandos de cabeça, mas épor aí. MInha classe de conexão funciona exatamente assim.




end;