Como parar uma consulta em execução?

Eu uso o RODBC para enviar consultas para um SQL-Server. Às vezes, eles demoram muito para serem executados, então eu preciso cancelá-los.

Clicar no botão vermelho "parar" no RStudio gera esta mensagem de erro:

R não está respondendo à sua solicitação para interromper o processamento. Para interromper a operação atual, pode ser necessário finalizar R completamente.

O encerramento de R fará com que sua sessão R seja interrompida imediatamente. Os cálculos ativos serão interrompidos e as alterações não salvas no arquivo de origem e os objetos da área de trabalho serão descartados.

Deseja encerrar o R agora?

E se eu clicar em Sim, minha sessão será encerrada. (nota: usar Rgui em vez de RStudio não melhora as coisas)

Contudo:

quando uso outro software (chamado "Query ExPlus") para conectar-me ao mesmo SQL-Server, tenho um botão de parada semelhante e clicar nele interrompe instantaneamente a consulta, sem qualquer falha.

quando me conecto a um banco de dados PostgreSQL usando o pacote RPostgres, também posso interromper a consulta a qualquer momento.

Esses dois pontos me levam a pensar que deveria haver uma maneira de resolver meu problema. O que eu posso fazer?

Até agora, minha solução alternativa é:

library(RODBC)
library(R.utils)

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

Nota: Não tenho permissão para eliminar consultas do lado do banco de dados.

questionAnswers(4)

yourAnswerToTheQuestion