FireDac - TFDQuery + TDataSource - Problema com comando Refresh

16/04/2015

0

Pessoal, estou usando TFDQuery + TDataSource para controlar um CRUD, fazendo os comando direto no TFDQuery (Insert, Post e etc.). Para isso mudei o parâmetro CachedUpdates para True. Porém estou tendo problemas com o comando Refresh.
Após dar um Post, dou um ApplyUpdate, e em seguida um Refresh na query para poder atualizar o DbGrid da tela. Porém ao executar o Refresh depois de um Insert, acontece o seguinte erro:

"Cached updates must be commited or canceled and batch mode terminated before refreshing"

E isso somente depois de uma inserção, depois de uma edição não acontece.

Alguém tem uma ideia de qual seria a solução correta para esta situação?

Eu dei um Close e Open na query, mas gostaria de entender a origem do erro para ter certeza de quando usar o Refresh ou não.
Rodrigues

Rodrigues

Responder

Posts

17/04/2018

Renata Macedo

O ApplyUpdate tem que ser antes de qualquer post e o refresh depois.
Responder

17/04/2018

Natanael Ferreira

Rodrigues, faça um teste utilizando o CommitUpdates após o ApplyUpdates:

FDQuery1.CommitUpdates;


Veja o link abaixo da documentação oficial:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Caching_Updates_(FireDAC)
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar