Dbgrid não atualiza o registro após o clientdataset.refresh

Delphi

01/06/2011

Estou com um problema.

Chamo o form de atualização a partir de outro form com a lista dos registros, mostrados através de um dbgrid.

Cliquo na célula do dbgrid e depois chamo o form de ediçãocom os dados do registro, através de um clique no botão, que prepara o registro para a alteração.

Quando atualizo o registro, e dou um refresh no clientdataset o dbgrid deixa visível apenas o registro alterado, mas mostrando o dado sem a alteração, apesar de no banco haver atualizado. So mostra os dados com as alterações, quando reinicio a aplicação.

o comando é o seguinte:

clientdateset.edit;
clientdataset.post;
clientdataset.applyupdate(0);
clientdataset.refresh;

Não sei o que estou fazendo de errado.


Francisco Macedo

Francisco Macedo

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

01/06/2011

No seu ClientDataSet você efetua algum Locate, atribui algum filtro a propriedade Filter ou altera o SQL?

Espero ter colabroado.
GOSTEI 0
Wilson Junior

Wilson Junior

01/06/2011

No seu ClientDataSet você efetua algum Locate, atribui algum filtro a propriedade Filter ou altera o SQL?

Espero ter colaborado.
GOSTEI 0
Francisco Macedo

Francisco Macedo

01/06/2011

Não.

Os dados são carregados no form, a partir de um OnCellClique, são preparados para a edição através de um Clientdataset.edit.

Em seguida é dado um Clientdataset.post e um Clientdataset.applyupdate(0).

Para atualizar a query é dado um Clientdataset.refresh.

Neste momento o dbgrid elimina todos os registros e deixa apenas o registro editado.
GOSTEI 0
Rafael Mattos

Rafael Mattos

01/06/2011

como ta seu select? vc passa parametros para ele?
GOSTEI 0
Francisco Macedo

Francisco Macedo

01/06/2011

Olá Rafael.

O problema era o parâmetro do select. Resolvido.

Obrigado
GOSTEI 0
POSTAR