Fórum Problema com o delete no clientdataset. #403786

27/06/2011

0

Estou usando dbexpress com clientdataset.

Tenho um dbrig que lista o cadastro salvo no banco.

Está acontecendo um problema quando deleto um registro.

O próximo registro, apesar de salvo, não aparece imediatamente na lista do grid.

Só vai aparecer quando eu gravo outro registro.

Isto é, para aparecer na lista do dbgrid, tenho que salvar dois registro. Vai aparecendo o penúltimo salvo.

Estou dando um refresh depois do applyupdate.
Francisco Macedo

Francisco Macedo

Responder

Posts

27/06/2011

Rafael Mattos

vc usa filtro?
Responder

Gostei + 0

27/06/2011

Francisco Macedo

Não.

Estou usando um JOIN e quando seleciono o registro para deletar, carrego duas variáveis.
Responder

Gostei + 0

28/06/2011

Teí Sistemas

Olá Francisco,

você poderia mostrar o código que está fazendo isto?


Responder

Gostei + 0

29/06/2011

Francisco Macedo

Bom dia Luciano!

O código para deletar é o seguinte:

DM.clientdataset.Delete;
DM.clientdataset.ApplyUpdates(0);
DM.clientdataset.Refresh;

Após abro e fecho outros clientdataset, para atualizar alguns campos.

Em seguida abro outro formulário de cadastro, mantendo o formulário com o dbgrid contendo a lista dos registros aberto, e utilizo o seguinte código:

CamposRequeridos(DM.clientdataset);
DM.clientdataset.Post;
DM.clientdataset.ApplyUpdates(0);
DM.clientdataset.Refresh;

Esse clientdataset é o mesmo do delete.

Abro e fecho outros clientdataset, para atualizar alguns campos.

Atribuo uma soma a um label, do formulário com a lista de registro, de um valor salvo.





Responder

Gostei + 0

29/06/2011

Junior Viesa

Colega, posta o seu select, pois ao que parece o problema está nele..
Responder

Gostei + 0

29/06/2011

Teí Sistemas

É Francisco, analisando seu código infelizmente não consegui encontrar nada... Mas vou continuar analisando, qualquer coisa aviso.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar