通过从远程桌面上的Microsoft SQL数据库读取数据。R
我的数据加载到Microsoft Windows server 2012远程桌面上的Microsoft SQL server上。我想通过R访问数据。我知道可能通过通过从远程桌面上的Microsoft SQL数据库读取数据。R,sql,sql-server,r,odbc,rodbc,Sql,Sql Server,R,Odbc,Rodbc,我的数据加载到Microsoft Windows server 2012远程桌面上的Microsoft SQL server上。我想通过R访问数据。我知道可能通过 但是我不知道在dsn上输入什么。这取决于您是想使用ODBC dsn还是不使用dsn的连接字符串、身份验证类型和驱动程序 下面是一个使用域身份验证和SQL Server驱动程序的无DSN连接字符串示例: odbcDriverConnect(connection="server=MYDB.mynet.tld;database=mydb_p
但是我不知道在dsn上输入什么。这取决于您是想使用ODBC dsn还是不使用dsn的连接字符串、身份验证类型和驱动程序 下面是一个使用域身份验证和SQL Server驱动程序的无DSN连接字符串示例:
odbcDriverConnect(connection="server=MYDB.mynet.tld;database=mydb_prod;trusted_connection=true;Port=1433;driver={SQL Server};TDS_Version=7.0;")
下面是另一个示例,使用SQL身份验证和FreeTDS驱动程序(例如,在Mac或Linux上)
有关“连接”元素中可以包含的内容的更多示例,请参见
以下是我用来以跨平台方式打开连接的函数:
require(RODBC)
connect <- function(host, db, user=NULL, pass=NULL, platform="win" ){
# TODO: Check input paramaters and add a branch for SQL auth on windows
if(platform == "win")
{
c <- odbcDriverConnect(connection=paste0("server=",host,
";database=",db,
";trusted_connection=true;Port=1433;driver={SQL Server};TDS_Version=7.0;"))
if(class(c) == 'RODBC')
{
writeLines("Successfilly opened connection to db")
return(c)
}
else
{
writeLines(paste0("Error opening connection: ", as.character(c)))
}
}
if(platform == "mac")
{
c <- odbcDriverConnect(connection=paste0("server=",host,
";database=",db,
";uid=",user,
";pwd=",pass,
";Port=1433;driver=FreeTDS;TDS_Version=7.0;"))
if(class(c) == 'RODBC')
{
writeLines("Successfilly opened connection to db")
return(c)
}
else
{
writeLines(paste0("Error opening connection: ", as.character(c)))
}
}
}
require(RODBC)
connect这取决于您想使用ODBC DSN还是不使用DSN的连接字符串、身份验证类型和驱动程序
下面是一个使用域身份验证和SQL Server驱动程序的无DSN连接字符串示例:
odbcDriverConnect(connection="server=MYDB.mynet.tld;database=mydb_prod;trusted_connection=true;Port=1433;driver={SQL Server};TDS_Version=7.0;")
下面是另一个示例,使用SQL身份验证和FreeTDS驱动程序(例如,在Mac或Linux上)
有关“连接”元素中可以包含的内容的更多示例,请参见
以下是我用来以跨平台方式打开连接的函数:
require(RODBC)
connect <- function(host, db, user=NULL, pass=NULL, platform="win" ){
# TODO: Check input paramaters and add a branch for SQL auth on windows
if(platform == "win")
{
c <- odbcDriverConnect(connection=paste0("server=",host,
";database=",db,
";trusted_connection=true;Port=1433;driver={SQL Server};TDS_Version=7.0;"))
if(class(c) == 'RODBC')
{
writeLines("Successfilly opened connection to db")
return(c)
}
else
{
writeLines(paste0("Error opening connection: ", as.character(c)))
}
}
if(platform == "mac")
{
c <- odbcDriverConnect(connection=paste0("server=",host,
";database=",db,
";uid=",user,
";pwd=",pass,
";Port=1433;driver=FreeTDS;TDS_Version=7.0;"))
if(class(c) == 'RODBC')
{
writeLines("Successfilly opened connection to db")
return(c)
}
else
{
writeLines(paste0("Error opening connection: ", as.character(c)))
}
}
}
require(RODBC)
connect当我输入以下内容作为连接名odbcDriverConnect(connection=“server=10.100.0.1;database=db\u name;uid=id;pwd=pwd;Port=1433;driver=FreeTDS;TDS\u Version=7.0;”)时出错错误警告消息:[RODBC]错误:状态IM002,代码0,消息[unixODBC][driver Manager]未找到数据源名称,并且没有指定默认驱动程序2:。。。。。ODBC连接失败
@Fistofury很抱歉,我不再处理此问题,并且忘记了如何解决此问题。当我输入以下内容作为连接名称时,出现了一个错误(odbcDriverConnect)(connection=“server=10.100.0.1;database=db\u name;uid=id;pwd=pwd;Port=1433;driver=FreeTDS;TDS\u Version=7.0;”)
错误警告消息:[RODBC]错误:状态IM002,代码0,消息[unixODBC][Driver Manager]未找到数据源名称,并且未指定默认驱动程序2:…ODBC连接失败
@Fistofury抱歉,我不再处理此问题,忘记了如何解决此问题。