Delphi + FDQuery (FireDAC) + LEFT JOIN

FireDAC

CRUD - Delphi

19/11/2020

Estou utilizando FDQuery e fazendo um CRUD com Append, Post, ApplyUpdates, etc...
Tenho um SELECT com LEFT JOIN:

SELECT a.*, c.DescCidade 
FROM Alunos a
LEFT JOIN Cidades c ON a.CodCidade = c.Codigo


Fazendo uma ligação simples..
Antes de dar o POST na query, eu faço:

qAluno.FieldByName('CodCidade').AsInteger := StrToInt(edCodCidade.text);
qAluno.Post;


Em tela, no DBGrid, a coluna: DescCidade fica em branco.
Tentei dar um refresh (antes do ApplyUpdate e deu erro: [FireDAC][Comp][DS]-205. Cannot refresh dataset []. CachedUpdates must be commited or canceled and batch mode terminated before refreshing.)
Tentei dar um Close/Open (e ainda fica com a cidade em Branco)

Somente depois de um ApplyUpdate, e depois um Close/Open ele carregou o DescCidade.
O meu grande problema é que eu faço esse ApplyUpdate, somente no fim desse cadastro, e não no meio..
Dando a impressão pro usuário de que a cidade não foi gravada.

Alguém já teve esse problema?
Gabriel Kenji

Gabriel Kenji

Curtidas 0
POSTAR