En cuanto al query has probado en colocar solo un TQuery? puedes ir limpiandolo al hacer otra consulta,si lo haces en tiempo de ejecucion.
Código Delphi
[-]
procedimiento query();
begin
with query.SQL do
begin
Clear;
Add('update Tabla');
Add('set campo1=valor1,campo2=valor2.....' );
Add('where campo1=valor');
query.execsql;
end;
end;