Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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
通过从远程桌面上的Microsoft SQL数据库读取数据。R_Sql_Sql Server_R_Odbc_Rodbc - Fatal编程技术网

通过从远程桌面上的Microsoft SQL数据库读取数据。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

我的数据加载到Microsoft Windows server 2012远程桌面上的Microsoft SQL server上。我想通过R访问数据。我知道可能通过


但是我不知道在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抱歉,我不再处理此问题,忘记了如何解决此问题。