函数中的RMySQL dbGetQuery()保留挂起的结果

函数中的RMySQL dbGetQuery()保留挂起的结果,r,rmysql,R,Rmysql,我的函数包含在一个较大的函数中,它使用dbConnect()、dbGetQuery()和dbDisconnect() 当函数出错时,我修复它并尝试重新运行它。但我无法重新运行它,因为我得到: mysqlCloseConnection(conn,…)中的错误: 连接有挂起的行(先关闭打开的结果集) (注意1:我没有使用dbSendQuery()+fetch(),只是使用dbGetQuery(),所以这本身就是一个奇怪的错误。) (注2:错误不会出现在RMySQL代码中;它们出现在R代码的其他部分。

我的函数包含在一个较大的函数中,它使用
dbConnect()
dbGetQuery()
dbDisconnect()

当函数出错时,我修复它并尝试重新运行它。但我无法重新运行它,因为我得到: mysqlCloseConnection(conn,…)中的
错误:
连接有挂起的行(先关闭打开的结果集)

(注意1:我没有使用
dbSendQuery()
+
fetch()
,只是使用
dbGetQuery()
,所以这本身就是一个奇怪的错误。)
(注2:错误不会出现在
RMySQL
代码中;它们出现在R代码的其他部分。)

失败的解决方案1:
dbClearResult(dbListResults(myconnection)[[1]])
不起作用,因为
myconnection
是在函数环境中创建的

解决方案2失败:
lappy(dbListConnections(dbDriver(drv=“MySQL”)),dbDisconnect)
errors out,上面显示了相同的“挂起的行”错误消息

我现在唯一的解决办法就是杀死R,重新开始。但是,我知道SQL数据库中仍然存在连接(因为我的老板告诉我这样做),所以我正在寻找一个合适的解决方案来关闭结果/连接


谢谢你的帮助。

我也遇到了类似的问题,所以它可能会在将来帮助其他人

pull<- dbSendQuery(con, statement...)
df2 <- fetch(pull, n = -1)
> dbHasCompleted(pull)
[1] TRUE
> dbDisconnect(con)
[1] TRUE
pull-dbDisconnect(con)
[1] 真的

您是否尝试过失败的解决方案1和2的组合,即:
lappy(dbListConnections(dbDriver(drv=“MySQL”)、function(con)dbClearResult(dblistconresults(con)[[1]])