O mesmo código em um form funciona em outro não MDO Firebird Delphi 7

Firebird

11/04/2010

Amigos, tenho dois forms em Delphi, um cadastro de orçamentos e outro de pedidos. Tenho duas Stored Procedures que me retornam o total a cada item inserido tanto de orçamentos como de pedidos. Uso o seguinte código no form de orçamentos: //Aqui pego o total do orçamento                   DM.MDOTOTAL.Close;
                  DM.MDOTOTAL.SQL.Clear;
                  DM.MDOTOTAL.SQL.Add('select * from SP_TTLORC(:onum_ent)');
                  DM.MDOTOTAL.Params[0].AsInteger := onum_var;
                  DM.MDOTOTAL.Open; //Aqui atribuo o total ao campo total da tabela orçamento                   DM.MDS_ORCAM.Edit;
                  DM.MDS_ORCAM.Fields[34].AsCurrency := DM.MDOTOTAL.Fields[0].AsFloat;
                  DM.MDS_ORCAM.Post;
Funciona perfeitamente, porém este código que é da tabela pedidos, não esta funcionando:                   DM.MDQTOTALPED.Close;
                DM.MDQTOTALPED.SQL.Clear;
                DM.MDQTOTALPED.SQL.Add('select * from SP_TTLPED(:CDPED_ENT)');
                DM.MDQTOTALPED.Params[0].AsInteger := onum_ped;
                DM.MDQTOTALPED.Open;                   DM.MDS_PEDIDO.Edit;
                DM.MDS_PEDIDO.Fields[10].AsCurrency := DM.MDQTOTALPED.Fields[0].AsCurrency;
                DM.MDS_PEDIDO.Post;
Quando dou post, some o valor, do DBEDIT referente ao campo total. A configuração dos componentes é identica. E percebi que quando incluo 2 itens, se eu fechar e abrir a tabela ele só vai atualizar o penúltimo item. Me parece que a transação esta travando. Será  problema do componente? Grato
Marcio Fonseca

Marcio Fonseca

Curtidas 0

Respostas

Thiago Santana

Thiago Santana

11/04/2010

Utilize o comando CommitRetaing para efeuar a gravação, pois o comando post grava apenas na memória...
Acho que isso deve resolver teu problema!
Espero ter ajudao!
AbraçoO
GOSTEI 0
Marcio Fonseca

Marcio Fonseca

11/04/2010

Utilize o comando CommitRetaing para efeuar a gravação, pois o comando post grava apenas na memória...
Acho que isso deve resolver teu problema!
Espero ter ajudao!
AbraçoO
Beleza Thiago, então cara, isso não resolveu não, até porque o componente de transação esta em autocommit. E como eu disse no form de orçamentos funciona perfeitamente. Olha o teste que fiz, com a aplicação e o IBExpert abertos, fui incluindo itens no orçamento, a cada item que eu incluia verifica no IBExpert, perfeito. Ja com a tela de pedidos, nada feito, não atualiza; A transação esta engasgada, hehehe. Valeu 
GOSTEI 0
POSTAR