Problema com o delete no clientdataset.
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.
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
Curtidas 0
Respostas
Rafael Mattos
27/06/2011
vc usa filtro?
GOSTEI 0
Francisco Macedo
27/06/2011
Não.
Estou usando um JOIN e quando seleciono o registro para deletar, carrego duas variáveis.
Estou usando um JOIN e quando seleciono o registro para deletar, carrego duas variáveis.
GOSTEI 0
Teí Sistemas
27/06/2011
Olá Francisco,
você poderia mostrar o código que está fazendo isto?
você poderia mostrar o código que está fazendo isto?
GOSTEI 0
Francisco Macedo
27/06/2011
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.
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.
GOSTEI 0
Junior Viesa
27/06/2011
Colega, posta o seu select, pois ao que parece o problema está nele..
GOSTEI 0
Teí Sistemas
27/06/2011
É Francisco, analisando seu código infelizmente não consegui encontrar nada... Mas vou continuar analisando, qualquer coisa aviso.
GOSTEI 0