如何在RMySQL中关闭结果集?

lok*_*art 39 mysql r

我使用RMySQL导入数据库,有时当我尝试关闭连接时,收到以下错误:

Error in mysqlCloseConnection(conn, ...) : 
  connection has pending rows (close open results set first)
Run Code Online (Sandbox Code Playgroud)

除了重新启动计算机之外我没有别的方法可以解决这个问题,我能做什么来解决这个问题?谢谢!

小智 46

我们可以使用dbClearResult方法.
例:

dbClearResult(dbListResults(conn)[[1]])
Run Code Online (Sandbox Code Playgroud)

  • 由于Dirks帖子中解释的原因而被低估了:如果你有待处理的行,你可能已经完成了`dbSendQuery("SELECT ...")`而没有获取所有结果,这可能不是你想要的.除非有特殊原因,否则始终对SELECT语句使用`dbGetQuery`. (3认同)

Dir*_*tel 14

正如多路复用器所指出的那样,通过将结果集的一部分留在后面,你可能做错了.

DBI和RMySQL之类的访问程序包有一些文档,有时候有点挑战.我试着提醒自己使用dbGetQuery()哪个一次抓取整个结果集.以下是CRANberries代码的简短片段:

sql <- paste("select count(*) from packages ",
             "where package='", curPkg, "' ",
             "and version='", curVer, "';", sep="")
nb <- dbGetQuery(dbcon, sql)
Run Code Online (Sandbox Code Playgroud)

在此之后,我可以毫无后顾之忧地关闭(或做其他操作).