この関数は接続を適切に閉じません(したがって、最大制限の16に達しますが、これは明らかに良くありません)。
query.test = function(query) {
con = dbConnect(MySQL(), groups = 'test')
output = tryCatch({
dbGetQuery(con, query)
}, warning = function(w) {
print(w)
}, error = function(e) {
print(e)
}, finally = function() {
dbDisconnect(con)
})
return(output)
}
句のステートメントは常に実行されると思っていたfinally
ので、このコードが機能しない理由はわかりません。