Я хочу написать функцию, которая выполняет следующую операцию: «если соединение с базой данных уже открыто, закройте его и снова откройте новое»
Для этого мне нужен способ проверить, если соединениеуже открыто
Вот моя строка соединения:
library(odbc)
my_conn_string <- paste("Driver{Teradata};DBCName=teradata2690;DATABASE=PRODUCTION;UID=",
username,";PWD=",password, sep="")
t2690 <- dbConnect(odbc::odbc(), .connection_string=my_conn_string)
Я думал об использовании class
соединения:
if (is.null(class(t2690)) {
t2690 <- dbConnect(odbc::odbc(), .connection_string=my_conn_string)
}
Однако это не работаеттак как класс одинаков независимо от того, открыто соединение или нет:
# Class when connected
class(t2690)
[1] "Teradata"
attr(,"package")
[1] ".GlobalEnv"
# Class when not connected
dbDisconnect(t2690)
class(t2690)
[1] "Teradata"
attr(,"package")
[1] ".GlobalEnv"