dbConnect 在 Rstudio.exe 和 RGui.exe 中工作,但在 RScript.exe 中作为可执行文件失败

问题描述

我正在尝试创建一个可以像可执行文件一样运行的 RScript 文件我有连接到 Microsoft Azure sql Server 数据库的 R 代码,该数据库使用活动目录密码身份验证、查询数据库并编写 csv 报告。我为数据库创建了一个 DSN,并使用以下代码在 RStudio.exe 和 RGui.exe 的 32 位和 64 位环境中成功连接到数据库

library(DBI)
library(tidyverse)
library(profvis)

show("Library Installed...")

pause(2)

CON <- dbConnect(odbc::odbc(),"My_DSN",uid = "UserName",pwd = "Password",timeout = 10)

show("Database Connected...")

pause(2)

sql <- "SELECT * FROM Table"

DATA <- dbGetQuery(CON,sql)

show("Data Extracted...")

pause(2)

NAME = unique(DATA$Name)

DATA.INDIVIDUAL = list()
for (i in NAME){
  DATA.INDIVIDUAL[[i]] <- DATA %>% filter(Name == i) %>% select("Field1","Field2","Field3")
  write.csv(DATA.INDIVIDUAL[[i]],paste("C:/My Documents/",i,"/Report.csv",sep = ""),row.names = FALSE)
  show(paste("Exported",i))
  pause(2)
}

我还通过显式命名数据库进行连接

library(DBI)
con <- dbConnect(odbc::odbc(),Driver = "ODBC Driver 17 for sql Server",Server = "ServerName",Database = "dbname",Authentication = "ActiveDirectoryPassword")
show("Database Connected...")

但是,当我使用 RScript.exe 运行相同的代码(两个版本)时,NULL 被打印到 RScript 命令行(在打印输出“Database Connected...”之前)和应用程序没有完成我的其余代码退出。为什么 Rstudio 和 RGui 可以连接而 RScript 无法连接?为什么没有错误,只是打印了 NULL

感谢任何帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)