我的函数包含在一个更大的函数中,使用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 数据库中仍然存在连接(因为我的老板告诉我这样),所以我正在寻找一个适当的解决方案来关闭结果/连接。
谢谢你的帮助。