ZeosLib Delphi 7 Firebird/Interbase
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:
Em relação o AutoCommit tem q ficar true mesmo???
Desde já Agradeço...
[ ]´s :roll: :x :shock:
Camussica
Curtidas 0
Respostas
Romulocpd
06/12/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
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
GOSTEI 0
Camussica
06/12/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...
GOSTEI 0
Romulocpd
06/12/2005
Nâo seria problema de transações?
GOSTEI 0
Camussica
06/12/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...
Desde já Agradeço...
GOSTEI 0
Eniorm
06/12/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.
GOSTEI 0
Romulocpd
06/12/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;
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;
GOSTEI 0