Jan 15, 2013 16:09
В R по умолчанию можно держать открытыми максимум 16 подключений к базе данных. При этом ответственность за закрытие лишних подключений лежит целиком и полностью на вас и даже если вы уничтожите переменную, которая ссылается на это подключение, вы не сможете закрыть его автоматически.
Долгое время я не обращал на это внимания, однако, со временем, сия проблема начала немного напрягать. Подумав, я пришёл к следующему решению:
library(RMySQL)
my_connect <- function(user, password, dbname, host="localhost") {
if (!exists("con") || !tryCatch(is.null(dbGetQuery(con, "DO 1")), error = function(err) FALSE )) con <<- dbConnect(MySQL(), user=user, password=password, dbname=dbname, host=host); con
}
my_disconnect <- function() {
dbDisconnect(con)
}
Недостаток - приходится использовать глобальную переменную con
r project,
пособие по вкручиванию лампочек,
сломай себе моск