Моя функция, содержащаяся в более крупной функции, использует dbConnect()
, dbGetQuery()
и dbDisconnect()
.
Когда функция выходит из строя, я исправляю ее и пытаюсь перезапустить. Я не могу запустить его повторно, потому что получаю: Error in mysqlCloseConnection(conn, ...) :
connection has pending rows (close open results set first)
(Примечание 1: я не использую dbSendQuery()
+ fetch()
, только dbGetQuery()
, так что это сама по себе странная ошибка.)
(Примечание 2: ошибки НЕ возникают в коде RMySQL
; они возникают в других частях R код.)
Неудачное решение 1: dbClearResult(dbListResults(myconnection)[[1]])
не работает, потому что myconnection
было создано внутри среды функции.
Неудачное решение 2: lapply( dbListConnections( dbDriver( drv = "MySQL")), dbDisconnect)
ошибок с тем же сообщением об ошибке «ожидающие строки», что и выше.
Мое единственное решение сейчас - убить R и начать все сначала. Однако я знаю, что соединение все еще существует в базе данных SQL (потому что мой босс сказал мне об этом), поэтому я ищу правильное решение, чтобы закрыть результат/соединение.
Спасибо за любую помощь.
lapply( dbListConnections( dbDriver( drv = "MySQL")), function(con) dbClearResult(dbListResults(con)[[1]]))
- person Alex   schedule 04.07.2014