在函数内部调用时数据库连接 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"))