我目前正在解决使用.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
答案 0 :(得分:1)
考虑使用ADO的GetRows()方法,该方法返回嵌套VBA数组中记录集的记录,该数组将转换为嵌套的R列表。目前,您只检索记录集对象。
results = conn$Execute(query)$GetRows()