[firebase-br] Problema com transação
NextCorp Informática
nextcorp em terra.com.br
Ter Jul 15 22:23:41 -03 2008
Não funcionou
Segue a rotina
procedure TfmSelEmiteBoleto.xpbtImprimirClick(Sender: TObject);
begin
{Abre a transação}
if not IB_Transaction1.InTransaction then
IB_Transaction1.StartTransaction;
xpbtImprimir.Cursor:= crHourGlass;
with dmDados.IBO_qryRelatorio1 do
begin
Close;
SQL.Clear;
SQL.Add('Select a.*, b.cli_codigo, b.cli_nome, b.cli_num_contrato,
b.cli_ende, b.cli_cidade, b.cli_uf, b.cli_bairro, b.cli_cep,
b.cli_complemento, b.cli_cpf,');
SQL.Add('b.cli_correspondencia, b.cli_ende_corr,
b.cli_cidade_corr, b.cli_uf_corr, b.cli_bairro_corr, b.cli_cep_corr,
b.cli_complemento_corr,');
SQL.Add('c.ced_razao, c.ced_cnpj, c.ced_cpf, c.ced_codcedban,
c.ced_codcedban_dv, c.ced_carteira, c.ced_especie_tit, c.ced_agencia,
c.ced_agencia_dv,');
SQL.Add('c.ced_tipo_pessoa, c.ced_banco, c.ced_conta,
c.ced_conta_dv, d.ban_instrucoes');
SQL.Add('from contas_receber a Join clientes b On a.cre_cli_codigo
= b.cli_codigo Join cedente c On a.cre_ced_codigo = c.ced_codigo Join bancos
d On c.ced_banco = d.ban_numero');
if rgSelecao.ItemIndex = 0 then // geral
SQL.Add('where (cre_pago = ''N'') and (cre_prn = ''N'')')
else if rgSelecao.ItemIndex = 1 then // plano
begin
SQL.Add('where (cre_pago = ''N'') and (cre_prn =
''N'') and (cli_tipo_plano = :wtipo)');
ParamByName('wtipo').AsInteger:= wtipo_plano;
end
else if rgSelecao.ItemIndex = 2 then // clientes
begin
SQL.Add('where (cre_pago = ''N'') and (cre_prn =
''N'') and (cli_codigo between :wcodini and :wcodfin)');
ParamByName('wcodini').AsInteger:=
dmLookUp.IB_qryClientesLk1.FieldByName('cli_codigo').asInteger;
ParamByName('wcodfin').AsInteger:=
dmLookUp.IB_qryClientesLk2.FieldByName('cli_codigo').asInteger;
end;
SQL.Add('order by cre_nosso_numero');
Open;
if IsEmpty then
begin
ShowMessage('Não há registros a imprimir !!!');
xpbtImprimir.Cursor:= crDefault;
Abort;
end
else
begin
fmqrEmiteBoleto:= TfmqrEmiteBoleto.Create(self); //
criando formulario
fmqrEmiteBoleto.QRLBDataDocFC.Caption:= DateToStr(Date);
fmqrEmiteBoleto.QRLBDataProcFC.Caption:= DateToStr(Date);
while not dmDados.IBO_qryRelatorio1.Eof do
begin
with fmqrEmiteBoleto do
begin
qrEmiteBoleto.Preview;
Free;
end;
end;
xpbtImprimir.Cursor:= crDefault;
{muda a cre_prn para sim}
Try
with dmDados.IB_StoredProc1 do
begin
Close;
StoredProcName:= 'SP_BOLETO_IMPRESSO';
ParamByName('WPLANO').asInteger:= wtipo_plano;
ParamByName('WCODINI').asInteger:=
dmLookUp.IB_qryClientesLk1.FieldByName('cli_codigo').asInteger;
ParamByName('WCODFIN').asInteger:=
dmLookUp.IB_qryClientesLk2.FieldByName('cli_codigo').asInteger;
if not Prepared then
Prepare;
ExecProc;
if MessageDlg('Confirmar a transação
?',mtConfirmation,[mbYes,mbNo],0)= mrYes then
IB_Transaction1.Commit
else
IB_Transaction1.Rollback;
end;
Except
on Exc: Exception do
begin
IB_Transaction1.Rollback;
showmessage('Aconteceu a
Advertência:'+#13#13+Exc.Message);
end;
End;
end;
end;
IB_LkCCliente1.Enabled:= False;
IB_LkCCliente2.Enabled:= False;
IB_LkCPlano.Enabled:= False;
xpbtImprimir.Enabled:= False;
rgSelecao.ItemIndex:= -1;
end;
----- Original Message -----
From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, July 15, 2008 4:28 PM
Subject: Re: [firebase-br] Problema com transação
Sugiro que vc coloque um IB_Transaction e associe os componentes
envolvidos no processo diretamente a ele. Antes de começar, de um
starttransaction, e depois um rollback ou commit (conforme for o
caso).
[]s
Cantu (Membro do TeamFB - FireBase)
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br
Blog - http://blog.firebase.com.br
NI> Caros colegas
NI> Estou com um problema com transações que estão me deixando louco. Uso
delphi
NI> 5, IBO.
NI> Abro a transação
NI> imprime boletos
NI> executa uma sp que passa o campo impresso para Sim
NI> no final pergunto: Confirma a transação ????
NI> Mesmo clicando em Não, onde dá o rollback, ele não desfaz as alterações
do
NI> campo impresso = Sim
NI> Minhas configurações do IBO transaction estão como autocommit false e
NI> readcommit marcado.
NI> Não consigo descobrir o por que de estar confirmando mesmo marcando como
NI> não.
NI> Alguma luz ????
NI> Atenciosamente
NI> Washington André Muller da silva
NI> #######################
NI> NextCorp Informática Ltda
NI> www.nextcorp.com.br
NI> nextcorp em terra.com.br
NI> 0xx-(51)-3037-6605
NI> #######################
NI> ______________________________________________
NI> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
NI> Para saber como gerenciar/excluir seu cadastro na lista, use:
NI> http://www.firebase.com.br/fb/artigo.php?id=1107
NI> 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://mail.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0NzQ4MTEjcGVybSF0ZXJyYSYxLDEyMTYxNTAxMzkuOTI3Mzc5LjI0MTU5LmFsZGFicmEuaHN0LnRlcnJhLmNvbS5iciw0NTc3
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 - http://www.avg.com
Version: 8.0.138 / Virus Database: 270.4.11/1554 - Release Date: 15/07/2008
18:03
Mais detalhes sobre a lista de discussão lista