[firebase-br] FB2.5 Transactions

Carlos H. Cantu listas em warmboot.com.br
Sáb Jul 14 20:48:21 -03 2012


Que eu saiba não haverá mudanças quanto a isso no FB 3.

Mas lembre-se que vc pode tratar exceções nas procedures, com o WHEN...DO. Com isso, creio que vc poderia processar os registros e armazenar em uma tabela temporária aqueles que deram problema, para posterior solução.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

MR> Cantú,
MR>   
MR>  Que pena!
MR>  É que o processamento via Storeprocedure é muitíssimo mais
MR> rápido enquanto que via aplicação é significativamente mais lento.
MR> Não há comparação possível em termos de velocidade. 
MR>  A StoreProcedure é chamada da minha aplicação da minha aplicação num único call: 
MR>  ///Procedure: PROC_APL_RETORNO_PS2
MR> StrProcPagaPs2.Close;
MR> StrProcPagaPS2.ParamByName('IN_TRANSAC_ID').AsString := IntToStr(iControloID) ;
MR> StrProcPagaPs2.Prepare;
MR> StrProcPagaPs2.ExecProc;
MR>  Porém, todos inserts, updates etc... são feitos pela
MR> Storeprocedure, de forma que, se bem percebi, não dá
MR>  para fazer o Start/Commit/RollBack, so fazendo flush para disco
MR> depois do balançao entre a comunicação de pagos ou não pagos e os
MR> efectivamente conseguidos aplicar/descarregar no ficheiro de
MR> Cobranças e Facturas/Recibos  como efectivamente cobrados ou pagos!???
MR>  
MR>  Será que no Firebird3.0 vai haver alguma forma de o fazer o
MR> start/commit/rollback numa Store Procedure?
MR>  V/tem alguma sugestão como pudesse contornar este problema sem
MR> passar por fazer tudo na aplicação
MR>  atenta a degradação que lhe falei? 
MR>   
MR>  De qualquer forma, obrigad. Muito agradeço a informação.
MR>   
MR>  Cumprimentos
MR>  Mário Reis
MR>  
MR>  
MR>  No dia 13 de Julho de 2012 13:24, Carlos H. Cantu
MR> <listas em warmboot.com.br>escreveu:
MR>  
MR> O Firebird não suporta controle de transações
MR> (start/commit/rollback) dentro de
MR> procedures/triggers. Isso tem que ser feito na sua aplicação.
MR>  
MR> []s
MR> Carlos H. Cantu
MR> www.FireBase.com.br - www.firebirdnews.org
MR> www.warmboot.com.br - blog.firebase.com.br
MR>  
MR>>  Olá Pessoal,

MR>> Estou com uma dificuldade. A minha aplicação recebe ficheiros pré-formatados
MR>> com centenas/milhares de registos a partir dos quais tenho de actualizar o meu
MR>> banco de dados a débito ou a crédito. Acontece esses ficheiros embora
 MR>> formatados no meu sistema são modificados pelos bancos que procedem aos
MR>> pagamentos ou às cobranças e, por vezes, são-me devolvidos com erros de
MR>> formatação e outros que me causam sérios problemas.
MR>  
MR>> Esses ficheiros são processados em "batch" através de uma "Store Procedure"
MR>> que lê os ficheiros recebidos "While not Eof" e de acordo o  código de
MR>> Pagos/Nãopagos ou Cobrados/NãoCobrados vão actualizar o ficheiro de cobranças
 MR>> do meu sistema(uma espécie de conta corrente).

MR>> Ora, gostaria de fazer "commit ou rollback" no fim, depois de efectuadas todas
MR>> validações entre os registos informados com .

MR>> Estou à procura na net de exemplos que ensinem "begin transaction commit e
 MR>> rollback e não estou a encontrar nada de clarificador.

MR>> Alguém tem algum exemplo ou link que possa me facultar.

MR>> Obrigado

MR>> Mário Reis
MR>  
MR>  


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










Mais detalhes sobre a lista de discussão lista