[firebase-br] Problema com transações

NextCorp Informática nextcorp em terra.com.br
Sex Jun 12 12:44:43 -03 2009


Caro João

Me esqueci de colocar no e-mail, mas uso ReadCommitted e AutoCommit = False

Vou tentar tb com a sua solução.

Obrigado

Atenciosamente

Washington André Muller da silva

#######################
NextCorp Informática Ltda
www.nextcorp.com.br
nextcorp em terra.com.br
0xx-(51)-3037-6605
#######################
----- Original Message ----- 
From: "João Dias" <jdias.bjsoftware em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, June 12, 2009 8:04 AM
Subject: Re: [firebase-br] Problema com transações


Bom dia Washington

Qual o tipo de transação que você está usando?

ReadCommitted é o tipo mais indicado para leitura e escrita com
consistência.

O problema pode estar acontecendo com a abertura explícita no início do
Form, como cada coisa no Fb roda sobre uma transação exceto um Generator,
os possíveis Selects que tu fizestes podem estar influenciando no
Commit/Rollback dos dados.

Seria legal se você usasse a estrutura desconectada (DataSet) para
armazenar os dados e no seu botão Gravar Abrir a transação e tentar
gravar lá mesmo

AbrirTransacao();
Try
  TentarGravar();
  Committ();
Except on E:Exception do
  begin
     Rollback();
     raise Exception.Create(E.Message);
  end;
end;

Fazendo a mesma coisa para o Rollback

AbrirTransacao();
Try
  CancelarDataSet();
Except on E:Exception do
  begin
      raise Exception.Create(E.Message);
  end;
end;

Se fazer desta maneira não é possível para sua solução tente ver o que
está interferindo na sua transação. Observe se o IBO está como
AutoCommitt ativado também. O IBO tem controle de transações implícitas
e explícitas, mas você precisa configurá-lo para isso. Infelizmente faz
tanto tempo que não o uso que não lembro os parâmetros ao certo. Sei que
o AutoCommitt é um deles.

Espero ter ajudado


-- 
João Dias de Carvalho Neto
jdias.bjsoftware em gmail.com

Quer Artigos de Patterns GOF e Patterns Corporativos com vídeo aula e Fontes 
Demonstrativos?
vá a http://www.jdiasneto.blogspot.com


NextCorp Informática escreveu:
> Caros colegas
>
> Estou com um problema em uma transação que está me deixando louco, isto 
> que estou utilizando uma transação especifica para estes procedimentos.
>
> É um form que realiza uma consulta e depois emite boletos bancários.
>
> Quando abro o form inicio a transação explicitamente.
> Abro as tabelas e faço os selects normalmente, executa algumas sp de 
> inclusões e depois imprime o boleto.
>
> Após imprimir, faço a pergunta básica: Confirma a transação ? Sim comita 
> não rollback
>
> Abro novamente a transação para que a pessoa imprima os próximos boletos 
> se necessário.
>
> Agora o problema:
>
> Se mando imprimir novamente, repete o ultimo nosso numero novamente, quer 
> dizer a sp que incrementou o ultimo nosso numero corretamente, mesmo após 
> comitar na verdade não comita.
>
> Dai descobri que fechando as tabelas e apos executar o commit e abrir a 
> transação novamente e as tabelas envolvidas, ultimo nosso numero está 
> gravado corretamente.
>
> Ok, beleza, resolvido.
>
> Vou testar um rollback....
>
> Bingo, faz o rollback, mas no momento que fecho o form e neste caso fecho 
> as minhas querys, o que acontece ?
>
> Ele grava os registros que não deveriam ser gravados.
>
> Não sei mais o que fazer, simplesmente, não faz como deveria ser:
>
> Abrir a transação
> Processar
> Confirmar ou Não.
>
> Delphi5 e IBO 4.8.7, Fire 2.1.2.18118
>
>
>
>
>
> Atenciosamente
>
> Washington André Muller da silva
>
> #######################
> NextCorp Informática Ltda
> www.nextcorp.com.br
> nextcorp em terra.com.br
> 0xx-(51)-3037-6605
> #######################
> ______________________________________________
> 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

E-mail verificado pelo Terra Anti-Spam.
Para classificar esta mensagem como spam ou não spam, visite
http://ecp.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0NzQ4MTEjcGVybSF0ZXJyYSYxLDEyNDQ4MDkyNjIuODAwNTI5LjI4OTA0LnNpbnRhbHV0YS50ZXJyYS5jb20sNzk0NA==TerraMail
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.




--------------------------------------------------------------------------------



No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.5.339 / Virus Database: 270.12.63/2169 - Release Date: 06/11/09 
05:53:00





Mais detalhes sobre a lista de discussão lista