Спасибо, но я, очевидно, установил соединение перед отправкой запроса.
ользую RODBC для отправки запросов на SQL-сервер. Иногда они занимают слишком много времени, поэтому мне нужно отменить их.
Если щелкнуть красную кнопку «Стоп» в RStudio, появится следующее сообщение об ошибке:
R не отвечает на ваш запрос на прерывание обработки, поэтому, чтобы остановить текущую операцию, вам может потребоваться полностью завершить R.
Завершение R приведет к немедленному прекращению сеанса R. Активные вычисления будут прерваны, а несохраненные изменения исходного файла и объекты рабочей области будут отброшены.
Вы хотите прекратить R сейчас?
И если я нажму «да», мой сеанс действительно прекратится. (примечание: использование Rgui вместо RStudio не делает вещи лучше)
Тем не мение:
Когда я использую другое программное обеспечение (называемое «Query ExPlus») для подключения к тому же SQL-серверу, у меня появляется аналогичная кнопка остановки, и нажатие на нее мгновенно прерывает запрос без какого-либо сбоя.
когда я подключаюсь к базе данных PostgreSQL с помощью пакета RPostgres, я также могу прервать запрос в любое время.
Эти два момента заставляют меня думать, что должен быть способ решить мою проблему. Что я могу сделать?
Пока что мой обходной путь:
library(RODBC)
library(R.utils)
withTimeout(mydf <- sqlQuery(myconnection, myquery), timeout=120)
Замечания: У меня нет разрешения убивать запросы со стороны базы данных.