Erro no Relacionamento

Delphi

20/02/2004

Caros Colegas,

Estou com um problema, nao sei se e na estrutura no relacionamento.
tenho o seguinte:
duas tabelas : locacoes e itens;
Pois bem,
Quando vou fazer uma locacao da tudo certo (hoje por exemplo).
Mas se eu for fazer uma locacao amanha aparece os itens de ontem, e eu nao quero que isso aconteca.
no evento on show do formaluga coloquei:
dtmo.TBALUGA.Append;
Dtmo.TBALUGAVALOR_TOTAL.Value:=0;
dtmo.TBALUGADATS.Value:=Date;
Dtmo.TBALUGA.post;
Dtmo.TBITEns.append;// depois eu abro outros formularios e salvo os dados dos itens (quanto a isso creio que nao ha problemas)
O que sera que esta errado.
muito obrigado. :cry:


Dbergkamps

Dbergkamps

Curtidas 0

Respostas

Tnaires

Tnaires

20/02/2004

Hmmm... não recomendo esta prática...
Vc primeiro grava um registro na tabela mestre pra depois gravar os detalhes? E se, por acaso, o cliente resolver desistir da locação (e isso não é raro)? O tamanho do banco vai crescer exponencialmente, com registros ´órfãos´ de locações.
Para evitar isso, vc pode pôr um DB.StartTransaction (BDE) ou um DB.BeginTransaction (ADO) antes de iniciar a venda, e no OnClick de um hipotético botão ´Cancelar´, DB.Rollback (BDE) ou BD.RollbackTransaction
(ADO), para desfazer os posts. Ou ainda, se estiver usando BDE, utilizar o recurso de CachedUpdates. As alterações ficam no cache e só são aplicadas depois de um ApplyUpdates. Componentes UpdateSQL são requeridos.
Bom, não entendi o q vc quis dizer com ´aparecem os itens d ontem´, vc pode reexplicar?
Sucesso!


GOSTEI 0
Dbergkamps

Dbergkamps

20/02/2004

valeu pela forca, mas e que eu ainda nao domino esses componentes que vc mensionou. O que eu quis dizer com componentes de ontem e que aparecem os itens de locacoes anteriores.


GOSTEI 0
Dbergkamps

Dbergkamps

20/02/2004

valeu pela forca, mas e que eu ainda nao domino esses componentes que vc mensionou. O que eu quis dizer com componentes de ontem e que aparecem os itens de locacoes anteriores. :cry:


GOSTEI 0
Tnaires

Tnaires

20/02/2004

Não tenho certeza se é isso, mas pode ser pq vc não tá fechando o seu DataSet (DataSet.Close;) depois d realizar as operações de inserção. Antes d inserir, dê um Close e um Open, e depois d inserir, dê um Close.
Mas não entendi se vc vai fazer uma locação no outro dia, ou se vai efetuar uma nova locação logo após a primeira, mas com a data d amanhã.
Abraços


GOSTEI 0
POSTAR