Fórum O mesmo código em um form funciona em outro não MDO Firebird Delphi 7 #134641
11/04/2010
0
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
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
Curtir tópico
+ 0
Responder
Posts
11/04/2010
Thiago Santana
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
Acho que isso deve resolver teu problema!
Espero ter ajudao!
AbraçoO
Responder
Gostei + 0
11/04/2010
Marcio Fonseca
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 Acho que isso deve resolver teu problema!
Espero ter ajudao!
AbraçoO
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)