[firebase-br] dbExpress ou Zeos ?

Magno System magno em speet.com.br
Sex Jul 25 15:39:56 -03 2008


Quanto a não commitar explicitamente esse erro não existiu. Estava tudo 
correto pelos seguintes motivos:

1 - Esse sistema roda em mais 14 clientes e só em 2 deu problema.

2 - Mesmo nestes dois clientes, acontecia exporadicamente (mas acontecia).

3 - O problema acabou simplesmente trocando de Zeos para DBX sem mudar nada 
no código.

4 - Teve um estudo sobre isto aqui na lista e chegou-se a conclusão que é 
devido a uma variável no código do zeos que controla a transação. Segue 
abaixo trecho do email tirado na lista aqui da FIREBASE.

"No meu entender o Zeos tem um bug, não olhei as outras versões. eu
tenho a 6.1.5.

Tu só consegue usar o StartTransaction se o AutoCommit estiver true, bem
esse não é o problema, uma vez que o StartTransaction do Zeos não starta
nada, a não ser passar o AutoCommmit para False, e incrementar a variavel
FExplicitTransactionCounter.

Dessa forma (AutoCommit=False) é possível chamar o método Commit do
componente ZConnection, esse então, chama o commit do protocolo em uso
(IB/FB/mySQL).

O Bug está na parte do commit do ZConnection, que só é chamado se a variavel
FExplicitTransactionCounter for menor que 2 (dois), segundo os comentários
do autor, se for 0 (zero) o AutoCommit foi setado como False, e se for 1
(um), o StartTransaction foi usado explicitamente.

Porém durante o StartTransaction, o conteúdo da variavel não é testada, e se
já contiver o valor  1 (um), ela será incrementada para 2 (dois), uma vez
que o commit só é efetuado se ela for menor que 2 (dois), è durante o Commit
que o AutoCommit é setado como True novamente.

Bom, quando o método ZConnection1.Disconnect for chamado, um RollBack é
efetuado, pois o AutoCommit vai estar False, e o "hard" Commit só é
efetuado, se o AutoComiit tiver true.

Isso pode acontecer se vc chamar o StartTransaction duas vezes, por engano,
erro de projeto, ou ainda se o commit falhar por erro interno (memória,
windows etc...)

----- Original Message ----- 
From: "Enio Marconcini -:- www.Enio.Pro.Br -:-" <eniorm em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, July 25, 2008 2:40 PM
Subject: Re: [firebase-br] dbExpress ou Zeos ?


quanto a problemas de não comitação de dados com certeza foi algo que faltou
vc tratar explicitamente o commit dos dados...

o mesmo pode acontecer com dbx, ibx ou mdo, se nao for comitado não grava.

tenho algums amigos programadores de um sistema acadêmico de uma faculdade
onde utilizam Zeos  para conectar no PostgreeSQL e funciona 100%

abraços

On Wed, Jul 23, 2008 at 8:00 PM, Magno System <magno em speet.com.br> wrote:

> DBExpress. Tive problemas com a não "comitação" de dados com o zeos
> ocasionando perda de dados que foram imediatamente resolvidas apenas
> trocando de zeos para DBX sem alterar o código do programa.
>
> Pra dizer que não falei das flores, isso aconteceu em apenas dois 
> clientes.
> Na maioria o zeos funcionou.
>
>
> ----- Original Message -----
> From: "FireBird FireBird" <firebird100 em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, July 23, 2008 7:07 PM
> Subject: [firebase-br] dbExpress ou Zeos ?
>
>
> Pessoal Qual dos dois drivres vcs recomendao para utliza o FB?
>
> dbExpress ou Zeos?
>
>
> Valeu,
> Felipe
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
ENIO RODRIGO MARCONCINI
www.enio.pro.br
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista