r - 在函数内调用时数据库连接 UI 不显示
问题描述
我正在使用 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"))
推荐阅读
- javascript - 通过同一连接访问多个 gRPC 服务(使用单个通道)
- python - 从 int 中减去一个元组
- c# - 如何使用 Visual Studio 构建应用程序的多个“目标”或“风格”?
- android - Android studio 3.6 无法解析视图绑定生成的符号
- spring - RestClientException:没有 HttpMessageConverter
- android - 现代 Proguard Gradle 插件需要 Android 插件吗?
- python-3.x - pycharm和打开文件建议int
- python - python中的高效列表比较
- symfony - Symfony 4 + graylog + 控制台错误
- android - 如何在夜间模式下更改深色操作栏的颜色?