FireDAC has a join in the same query statement and updates multiple data table settings at the same time.

dfdquery.sql.text := ‘select a.*, b.* from a left join b on a.id = b.id fdqery.cacheupdate := true; //This makes it easier to roll back multi-table errors fdquery.updateoptions.updatenobasefields := true; //Sub table fields can be edited fdquery.updateobject := TFdUpdateSqL; or fdquery.onupdaterecord event. Here is an example: procedure TForm2.Button3Click(Sender: TObject); var ne:Integer; begin qrym.CheckBrowseMode; if not qrym.UpdatesPending […]