2016-08-19 49 views
1

我想在R中使用.COM对象来建立到OLAP多维数据集的ADODB.Connection。为此,我使用rscproxy,rcom和statconnDCOM软件包。R&COM对象:如何连接到Windows上的OLAP多维数据集

不过,我没有真正成功地找到了RCOM包的任何有用的文档,因此,我在使用R. .COM对象挣扎大时间

我能够创建一个.COM对象,但我不知道接下来的步骤。我想要做的:

  1. 设置连接字符串
  2. 打开将R < - >多维数据集连接
  3. 执行MDX查询

请帮我这:-)

代码:

# I am quite confident that this section is right: 
library(rcom) 
conn <- comCreateObject("ADODB.Connection") 

# From now on it becomes speculative: 
comGetObjectInfo(conn) 
connStr = 'Provider=MSOLAP;Data Source=...;Initial Catalog=...;' 

# First try to set the connection string: 
comSetProperty(conn,"ConnectionString",connStr) 

# Second try to set the connection string: 
conn[["ConnectionString"]] = connStr 

# I try to establish the connection: 
conn$Open 

其他信息:

因为我花了相当长的一段与R-3.3.1安装提到的,上面的包,我想给我如何管理做简要概述:

.libPaths() 

options(install.packages.check.source = "no") 
install.packages(c("rscproxy","rcom"),repos="http://www.autstat.com/download",lib=.Library,type="win.binary") 
installstatconnDCOM() 
library(rcom) 
comRegisterRegistry() 

sessionInfo() 

回答

0

正如我在经过大量试验和错误方法后回答了我的问题,我想与您分享解决方案:最后,我从rcom包切换到RDCOMClient包,因为我被困在第一个。

下载软件包:

下载链接RDCOMClient_包:(我使用的R-3.3.1) https://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/3.3/

解决方案代码:

install.packages("local path to: RDCOMClient_0.93-0.2.zip", repos = NULL, type="source") 
library(RDCOMClient) 
sessionInfo() 

conn = COMCreate("ADODB.Connection") 
conn[["State"]] 

connStr = 'a connection string' 
conn[["ConnectionString"]] = connStr 

conn[["CommandTimeout"]] = 180 
conn[["ConnectionTimeout"]] = 30 

conn[["State"]] 

conn$Open() 

conn[["State"]] 

query = 'a query' 
results = conn$Execute(query) 
相关问题