[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