[firebase-br] Loucura => Mestre/Detalhe & CachedUpdates C/MDO v IB

Zottis zottissistemas em brturbo.com.br
Qui Jun 25 08:25:32 -03 2009


Para contornar esse problema eu utilizo assim:
criei um campo Estado_da_Tabela na Tabela Pedidos
e nele eu coloco como "INSERINDO", no onnewrecord
e quando eu vou colocar registros na tabela de itens, eu gravo o registro da 
tabela Pedidos no banco

se eu clico no botao salvar, eu mudo o campo ESTADO_DA_TABELA para 
"GRAVADO",
se eu clico no botao Cancelar, eu verifico o campo ESTADO_DA_TABELA, se esta 
"INSERINDO" eu deleto,
se esta  "GRAVADO", eu Aplico o Cancel


assim eu consegui resolver este problema.

PS. Criei também um Trigger que deleta os pedidos que estão com o Campo 
ESTADO_DA_TABELA = "INSERINDO"
se a data for menor que a data atual, para evitar de deixar passar algum 
erro nos lançamentos.


espero que ajude.




Zottis(TeamFB Users)

Zottis Sistemas - 2009 Ano XII
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
----- Original Message ----- 
From: "Mário Reis" <mariodosreyx em gmail.com>
To: <lista em firebase.com.br>
Sent: Thursday, June 25, 2009 6:31 AM
Subject: [firebase-br] Loucura => Mestre/Detalhe & CachedUpdates C/MDO v IB


Bom dia,

 Depois de muitos problemas a tentar por a funcionar um programinha simples
em que uso o FB2.1+MDO c/1 ficheiro Mestre(factura) e outro Detalhe(Linhas 
da
Factura) com CachedUpdates e quando estava quase a desistir reparei que há 
mais
gente, não muita na Net que experimenta/ou as mesmas dificuldades.

Vai daí toca a tentar IBMaster(MastApp.Drp) que vem com o Delphi7 alterando
para o Firebird em especial EdOrders.pas que tem por-de-trás o ficheiro
Mestre=>Orders e o Detalhe=>Items c/CachedUpdates=True e, no
AfterPost_do_Orders Database.ApplyUpdates([Orders,Items etc...])+
Transaction.CommitRetaining. Converti linha a linha para os componentes
da MDO e para meu espanto tb não funciona/ou.
Comecei de novo e... nada.
Isto é, os registo de Detalhe novos não são gravados.
Para meu espanto o mesmo acontece com o original usando os componentes 
nativos
do Interbase, IBDatabase,IBTransaction, IBTable,IBDataSet etc...(reinstalei 
de
novo e tudo como dantes, i.e., continuo sem consiguir escrever novos registo 
no
detalhe mas, não dá erro nenhum. Simplesmente não escreve!?

Contrariamente, o exemplo que usa o BDE(TDataBase,TTable,TQuery etc..) 
funciona
na perfeição, i.e. grava novas linhas no detalhe, pode-se desistir e faz bem 
o
cancelupdates... tudo conforme esperado!

Espantoso, não é? Logo com o BDE

Já aconteceu o mesmo a mais algum de vóz.

Qualquer ajuda c/ Mestre + Detalhe & CancelUpdates=True é bem vinda.

Obrigado a todos
Mário



______________________________________________
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 





Mais detalhes sobre a lista de discussão lista