Я экспериментирую с RMySQL и случайно создал соединение без дескриптора.
dbConnect(MySQL(), user = "foo", password = "bar")
connLocalDB = dbConnect(MySQL(), user = "foo", password = "bar")
Обратите внимание, что возврат первого вызова ничему не присваивается. Теперь, когда я делаю dbListConnections(MySQL())
, я вижу две связи:
> dbListConnections(MySQL())
[[1]]
<MySQLConnection:0,0>
[[2]]
<MySQLConnection:0,1>
Затем я попробовал это:
> dbDisconnect(dbListConnections(MySQL())[[1]])
[1] TRUE
но тогда я получил это:
> dbListConnections(MySQL())
[[1]]
Error in .local(dbObj, ...) :
internal error in RS_DBI_getConnection: corrupt connection handle
Как безопасно завершить соединение, которому не назначен дескриптор?
> dbListConnections(MySQL()) # list the open connections Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘dbListConnections’ for signature ‘"MySQLDriver"’
- person tchakravarty   schedule 07.04.2015dbListConnections()
больше не используется, потому что он не нужен. - person hadley   schedule 09.04.2015