更改sod服务器数据库的RODBC中的默认数据库

时间:2014-08-08 15:11:42

标签: sql sql-server r

我尝试使用以下方法将Sql server数据库连接到R:

conn<-odbcConnect("dsnDb",uid="",pwd="")

它检索默认数据库'master'而不是我需要的数据库。如何手动获取特定数据库?

1 个答案:

答案 0 :(得分:2)

所以,在RODBC包中没有办法做到这一点,但是这里有一个实现同样功能的功能:

假设您的DSN名为“MyODBClink”:

MakeChannel = function(dbName){
  system(paste("REG ADD HKEY_CURRENT_USER\\Software\\ODBC\\ODBC.INI\\MyODBClink /f /v \"Database\" /t REG_SZ /d ", "\"", dbName ,"\"", sep=""),intern=T)
  return(odbcConnect("MyODBClink"))
}

此功能的工作方式是编辑注册表的详细信息(我假设您在Windows上),使该特定DSN指向正确的数据库,然后返回到该DSN的开放连接。