Maverik per queste cose dovrebbe venirti incontro l'oggetto di UPDATE da associare alla query.
In pratica il meccanismo sotto è semplice.
TQuery estrae i dati e TUpdateSQL esegue le cose verso il DB.
A seconda della configurazione (Chiave, Record) TQuery passa o i campi chiave o tutto il record modificato (OLD e NEW a seconda delle esigenze) a TUpdateSQL.
In pratica (per chi mastica di progettazione) query delega ad updatesql di fare le operazioni.
TUpdatesql, alla fine non è che un contenitore di query (se ricordo bene). InsertSQL, DeleteSQL, UpdateSQL.
Se non c'è questa associazione è come se stessi lavorando su una "tabella".
Effettivamente SQLDb come package non ha questa classe, ma TSQLQuery ha le propery InsertSQL ecc.
Spero di averti dato qualche dritta utile.
Stilgar
PS:
Controllando il codice "funzionante" ho notato una cosa, non so se per scelta di tempi o gusto personale, come mai hai cablato i valori da inserire?
ZQuery1.SQL.Add(QuotedStr(IntToStr(idAnagrafe)) + ',');
Potevi utilizzare i PARAMS Standard.... o no?
Con una stringa "omnicomprensiva" dell'insert avresti avuto la possibilità di usare i "?" (Zeos) o :nome_parametro (Delphi standard) come segna posti. O mi sono perso qualche cosa, vista l'ora ;)