2016-04-15 65 views
1

我,使用R 3.2.4和El隊長,我希望用RODBC包中的R連接到SQL Azure的,我做了以下安裝它R中使用RODBC連接到SQL Azure的

brew install unixodbc 
install.packages("RODBC",type="source") 

而且還

brew install freetds --with-unixodbc 

上述命令的輸出:

Warning: unixodbc-2.3.4 already installed 
Warning: freetds-0.95.80 already installed 

但每當我嘗試使用以下連接:

library("RODBC") 

con = odbcDriverConnect(
    'driver = {SQL Server}; 
    Server = xxxxxx; 
    Database = xxxxx; 
    User Id= xxxxx; 
    Password= xxxxx;') 

我收到以下錯誤:

[RODBC] ERROR: state IM007, code 59478176, message [iODBC][Driver Manager]No data source or driver specified, dialog prohibited 
+0

我懷疑ODBC連接字符串是否對空格敏感。刪除'='周圍的所有空白,並刪除換行符。有關示例,請參閱https://www.connectionstrings.com/sql-azure/。 – Andrie

+0

對不起,這沒有奏效 –

回答

2

所以很多試錯後,這裏是我有:

1)溝RODBC和使用RSQLServer

install.packages("RSQLServer") 

創建一個名爲'sql.yaml'的配置文件(使用sublime),其內容如下:

SQL_PROD: 
    server: 11.1.111.11 
    type: &type sqlserver 
    port: &port 1433 
    domain: &domain companyname 
    user: &user winusername 
    password: &pass winpassword 
    useNTLMv2: &ntlm true 
SQL_DEV: 
    server: 11.1.111.15 
    type: *type 
    port: *port 
    domain: *domain 
    user: *user 
    password: *pass 
    useNTLMv2: *ntlm 
AW: 
    server: <yourservername> 
    type: sqlserver 
    user: <username> 
    password: <password> 
    port: 1433 

2)除在以下位置這YAML文件(運行中的R以下:Sys.getenv( 「HOME」)),例如:如果用戶名是戴夫其 「/用戶/戴夫」

3 )

############# 
#  DBI # 
############# 

# Note we do not attach the RSQLServer package. 
library(DBI) 
# Connect to AW server in ~/sql.yaml 
aw <- dbConnect(RSQLServer::SQLServer(), "AW", database = 'db') 

# RSQLServer only returns tables with type TABLE and VIEW. 
dbListTables(aw)