¿Cómo detener una consulta en ejecución?

Yo uso RODBC para enviar consultas a un servidor SQL. A veces tardan demasiado en correr, por lo que necesito cancelarlos.

Al hacer clic en el botón rojo "detener" en RStudio, aparece este mensaje de error:

R no responde a su solicitud de interrumpir el procesamiento, por lo que para detener la operación actual, es posible que deba terminar R por completo.

La finalización de R hará que su sesión de R se suspenda inmediatamente. Los cálculos activos se interrumpirán y los cambios del archivo fuente no guardado y los objetos del espacio de trabajo se descartarán.

¿Quieres terminar R ahora?

Y si hago clic en Sí, mi sesión se termina. (nota: usar Rgui en lugar de RStudio no mejora las cosas)

Sin embargo:

cuando uso otro software (llamado "Query ExPlus") para conectarme a este mismo SQL-Server, tengo un botón de detención similar, y al hacer clic en él se interrumpe instantáneamente la consulta, sin ningún bloqueo.

Cuando me conecto a una base de datos PostgreSQL usando el paquete RPostgres, también puedo interrumpir la consulta en cualquier momento.

Estos dos puntos me llevan a pensar que debería haber una manera de resolver mi problema. ¿Que puedo hacer?

Hasta ahora, mi solución es:

library(RODBC)
library(R.utils)

withTimeout(mydf <- sqlQuery(myconnection, myquery), timeout=120)

Nota: No tengo permiso para eliminar consultas desde el lado de la base de datos.

Respuestas a la pregunta(4)

Su respuesta a la pregunta