在函数内部调用时数据库连接 UI 不显示
Database Connection UI not showing when called inside a function
我正在使用 RStudio Server 和 ODBC 连接到 redshift 数据库。我可以使用以下方式轻松连接:
conn <- dbConnect(odbc::odbc(), Driver="redshift",
Server = SERVER_URL,
Port = "5439",
Database = DB_NAME,
PWD = PASSWORD,
UID = CREDENTIALS,
timeout = 10,
Trusted_Connection = "True")
当连接出现在边栏“连接”中时,我有一个 UI 来查看数据库。这正是我想要的。
问题是如果我在一个函数中调用相同的代码,那么我得到了数据库连接但没有 UI?!?从函数内部调用此代码时,如何让 UI 出现?
C
onnection_odbc_profile <- function(INPUT){
conn <- dbConnect(odbc::odbc(), Driver="redshift",
Server = SERVER_URL,
Port = "5439",
Database = DB_NAME,
PWD = PASSWORD,
UID = CREDENTIALS,
timeout = 10,
Trusted_Connection = "True")
return(conn)
}
我认为问题在于连接窗格仅在顶层代码为 运行 时才会更新。有什么方法可以在顶层(或直接在控制台中)强制函数中的一行代码 运行
我通过添加解决了这个问题:
code <- c(match.call()) # This saves what was typed into R
odbc:::on_connection_opened(conn, paste(c(paste("con <-", gsub(", ", ",\n\t", code))), collapse = "\n"))
我正在使用 RStudio Server 和 ODBC 连接到 redshift 数据库。我可以使用以下方式轻松连接:
conn <- dbConnect(odbc::odbc(), Driver="redshift",
Server = SERVER_URL,
Port = "5439",
Database = DB_NAME,
PWD = PASSWORD,
UID = CREDENTIALS,
timeout = 10,
Trusted_Connection = "True")
当连接出现在边栏“连接”中时,我有一个 UI 来查看数据库。这正是我想要的。
问题是如果我在一个函数中调用相同的代码,那么我得到了数据库连接但没有 UI?!?从函数内部调用此代码时,如何让 UI 出现?
C
onnection_odbc_profile <- function(INPUT){
conn <- dbConnect(odbc::odbc(), Driver="redshift",
Server = SERVER_URL,
Port = "5439",
Database = DB_NAME,
PWD = PASSWORD,
UID = CREDENTIALS,
timeout = 10,
Trusted_Connection = "True")
return(conn)
}
我认为问题在于连接窗格仅在顶层代码为 运行 时才会更新。有什么方法可以在顶层(或直接在控制台中)强制函数中的一行代码 运行
我通过添加解决了这个问题:
code <- c(match.call()) # This saves what was typed into R
odbc:::on_connection_opened(conn, paste(c(paste("con <-", gsub(", ", ",\n\t", code))), collapse = "\n"))