He encontrado
una explicación bastante detallada de este problema y como solucionarlo en el libro de
Marco Cantú.
Al final he utilizado un
IBDataSet (como recomendaba Delfino), pero debe de funcionar igualmente con un
IBQuery y un
IBUpdateSQL asociado. El secreto está en el
apartado Refresh correspondiente.
A continuación os detallo el comando
Select completo que utilizo y el
Refresh necesario. De esta manera el DBGrid se actualiza de manera automática en el mismo momento que se cambie el campo clave.
Código SQL
[-]select R.BUILDINGNO, R.RATENO, R.INTERNALNO,
R.SEASONCODE, S.CODENAME, S.NAME
from RATES_DATES R LEFT JOIN SEASONSTYPE S
on R.SEASONCODE = S.CODENAME
where R.RATENO = :RATENO and R.BUILDINGNO = :BUILDINGNO
order by R.SEASONCODE
El correspondiente
Refresh que debe ir asociado es
Código SQL
[-]select R.BUILDINGNO, R.RATENO, R.INTERNALNO,
R.SEASONCODE, S.CODENAME, S.NAME
from RATES_DATES R LEFT JOIN SEASONSTYPE S
on R.SEASONCODE = S.CODENAME
where R.INTERNALNO = :INTERNALNO
and R.RATENO = :RATENO and R.BUILDINGNO = :BUILDINGNO