Tienes razon. Yo pondria un bloque try except en el execsql.
Código Delphi
[-]
try
execsql;
except
on E: exception ShowMessage(E.message+#13#10+Query1.SQL.Text);
end;
De esta forma, Max_E puedes podras concretar el porque falla.
Espero que te sea de ayuda.
Oscar Noe