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.
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
Curtir tópico
+ 0
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:
Veja o link abaixo da documentação oficial:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Caching_Updates_(FireDAC)
FDQuery1.CommitUpdates;
Veja o link abaixo da documentação oficial:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Caching_Updates_(FireDAC)
Responder
Clique aqui para fazer login e interagir na Comunidade :)