Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
dbConnect在Rstudio.exe和RGui.exe中工作,但在RScript.exe中作为可执行文件失败_R_Odbc_Dbi_Rscript_Dbconnect - Fatal编程技术网

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

dbConnect在Rstudio.exe和RGui.exe中工作,但在RScript.exe中作为可执行文件失败,r,odbc,dbi,rscript,dbconnect,R,Odbc,Dbi,Rscript,Dbconnect,我正在尝试创建一个RScript文件,它可以像可执行文件一样运行。我有一个R代码,它连接到Microsoft Azure SQL Server数据库,该数据库使用active directory密码验证,查询数据库,并编写csv报告。我为数据库创建了DSN,并使用以下代码在RStudio.exe和RGui.exe的32位和64位环境中成功连接到数据库: library(DBI) library(tidyverse) library(profvis) show("Library Ins

我正在尝试创建一个RScript文件,它可以像可执行文件一样运行。我有一个R代码,它连接到Microsoft Azure SQL Server数据库,该数据库使用active directory密码验证,查询数据库,并编写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)
}
库(DBI)
图书馆(tidyverse)
图书馆(profvis)
显示(“已安装库…”)
暂停(2)

CON Hmmm…由于您将连接对象分配给
dbConnect
,Rscript不应输出任何内容。请将发送到Rscript的确切行过帐。它不可能是您发布的内容,因为没有
命令,但是
(R区分大小写)。@Parfait我用完整的代码更新了我的帖子,因此使用该代码,
NULL
出现在
显示(“数据库连接…”)之前。
是否显示(“已安装库…”)
是否显示?当
CON@Parfait
show(“已安装库…”)时,
出现,然后
NULL
出现,
show(“已连接数据库…”)
不出现,然后窗口关闭。如果我删除所有
show
pause
行,则RScript窗口打开,我可以看到库加载,然后窗口关闭。我添加了
show
pause
以降低执行速度,这样我就可以看到发生了什么。Rscript不是一个单击运行的应用程序,而是一个自动命令行工具。您可以打开PowerShell或CMD(Unix计算机中的Bash)并调用
Rscript'C:\path\to\myscript.R'
,或者如果R bin文件夹不在path env变量中:
C:\path\to\R\bin\Rscript'C:\path\to\myscript.R'
。看见
library(DBI)
con <- dbConnect(odbc::odbc(), uid = "UserName", pwd = "Password", Driver = "ODBC Driver 17 for SQL Server", Server = "ServerName", Database = "DBName", Authentication = "ActiveDirectoryPassword")
show("Database Connected...")