RDCOMClient包:如何从查询中读取数据

时间:2016-08-22 16:02:28

标签: mysql r com ado rdcomclient

我目前正在解决使用.COM对象连接到C的多维数据集,然后通过mdx-queries从多维数据集收集数据的问题。正如我之前描述的问题(参见下面的链接),我现在可以在RDCOMClient包和R版本3.3.1的帮助下连接到多维数据集,并且还可以向多维数据集发送查询。 此外,在跟踪我与SQL Server Profiler的连接时,我可以看到它正确连接+我也看到我的查询执行没有错误。

但是,我不知道如何在R中获取我的数据。我将查询结果保存在变量结果中,但我无法对其进行任何操作。你能帮我在R中显示我的查询结果吗?

连接+查询代码:

conn = COMCreate("ADODB.Connection")

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

conn$Open()
conn[["State"]]  

query = 'some query. 100% correct, tested with other tools'
results = conn$Execute(query)

结果变量的信息:(代码,后跟输出)

names = slotNames(results)
names 
  

[1]" ref"

slot(results,names[1])
  

指针:0x0000000015d63c60

str(results)
  

正式班级' COMIDispatch' [package" RDCOMClient"]有1个插槽

     

.. @ ref:

class(results)
  

[1]" COMIDispatch"     ATTR("包&#34)     [1]" RDCOMClient"

attributes(results)
  

$ REF

     

     

$类

     

[1]" COMIDispatch"

     

ATTR("包&#34)

     

[1]" RDCOMClient"

感谢您的帮助: - )

上一个问题:R & COM-Objects: How to connect to a OLAP cube on Windows

1 个答案:

答案 0 :(得分:1)

考虑使用ADO的GetRows()方法,该方法返回嵌套VBA数组中记录集的记录,该数组将转换为嵌套的R列表。目前,您只检索记录集对象。

results = conn$Execute(query)$GetRows()