2013-03-14 109 views
15

我试图使用RODBC odbcDriverConnect()连接错误

odbcDriverConnect('driver={SQL Server};server=servername\instancename,port;database=testing;username=abc;password=123456') 

连接远程数据库服务器(SQL Server 2008中)。但我得到了

[RODBC] ERROR: state 08001, code 17, message [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.

错误。任何想法?

我可以使用

odbcDriverConnect('driver={SQL Server};server=localhost;database=testing;trusted_connection=true') 

连接我的本地数据库服务器(SQL Server 2008中)。

回答

28

正确的语法应为:

odbcDriverConnect('driver={SQL Server};server=servername\\instancename,port;database=testing;uid=abc;pwd=123456') 

如果您使用Windows身份验证方法:

odbcDriverConnect('driver={SQL Server};server=servername\\\\instancename,port;database=testing;trusted_connection=true') 

斜线似乎是一个转义字符,转义斜杠作品。

1

1.Connet到MySQL

一)如果系统中安装mysql的,如果不安装它。

B)下载RMySQL中的R

library(RMySQL)

drv = dbDriver("MySQL 5.0.1")

确保MySQL的版本是正确的。

con = dbConnect(drv,host="localhost",dbname="test",user="root",pass="root")

使用本地主机或使用服务器即IP地址

使用所需的数据库名称,用户名和密码

album = dbGetQuery(con,statement="select * from table")

运行所需的查询

close(con)

2。另一种方式来连接数据库

一)第一次安装,如MySQL,甲骨文,SQL服务器

B中所述的数据库)安装了ODBC连接数据库

library(Rodbc)

channel <- odbcConnect("test", uid="ripley", pwd="secret")

测试用户必须设置的odbc conector的连接名称manuald

user可以在管理员工具找到这个

res <- sqlFetch(ch, "table name")

一个表可以被检索作为数据帧中的与条件的一个表中的

res<-sqlQuery(channel, paste("select query"))

部分可以作为一个数据帧中检索

sqlSave(channel, dataframe)

将数据帧保存到数据库(don T选用 “资源< - ” 这样的事情)

比如用户可以使用

sqlCopy() sqlDrop()

sqlTables()

close(channel)

始终关闭连接

8

对于MICR osoft ODBC Driver 11 for Linux上的SQL Server与R版本3.0-7 R版本3.0.1中没有上述答案的工作。然而,什么工作是以下内容:

dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server; 
       Server=127.0.0.1; Database=MyDBName; 
       Uid=MyName; Pwd=XXXX") 

(放在相关的IP地址,数据库名称等)。

在受信任的连接的情况下:

dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server; 
       Server=127.0.0.1; Database=MyDBName; 
       Uid=MyName; Pwd=XXXX; trusted_connection=yes") 

trusted_connection只会听“是”或“否”,而不是“真”和“假”