Bueno tranquilidad antetodo, la máquina no tiene ninguna culpa
Prueba a quitar la intrucción ExecSQL. Verás como funciona.
Si estás ejecutando una sentencia SQL de consulta, debes abrirla con un Query.open o un query.Active := True.
Cuando hagas una sentencia SQL que implique alteración de datos (insert, delete, update, create, drop, etc) debes usar un ExecSQL en lugar del Open o el active.
Espero te sirva,
Saludos