1

私は現在、.COM オブジェクトを使用して R でキューブに接続し、mdx クエリを介してキューブからデータを収集するという問題に取り組んでいます。以前の質問で説明したように (以下のリンクを参照)、RDCOMClient パッケージと R バージョン 3.3.1 を使用してキューブに接続できるようになり、キューブにクエリを送信することもできます。さらに、SQL Server プロファイラーとの接続をトレースすると、正しく接続されていることがわかります。また、クエリがエラーなしで実行されていることもわかります。

ただし、R 内でデータを取得する方法がわかりません。クエリの結果を変数 results に保存しますが、何もできません。クエリ結果を 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]「参照」

.

slot(results,names[1])

ポインタ: 0x0000000015d63c60

.

str(results)

1スロットの正式クラス「COMIDispatch」[パッケージ「RDCOMClient」]

..@参照:

.

class(results)

[1] "COMIDispatch" attr(,"package") [1] "RDCOMClient"

.

attributes(results)

$ref

$クラス

[1]「COMIDispatch」

attr(,"パッケージ")

[1]「RDCOMクライアント」

.

助けてくれてありがとう:-)

.

前の質問: R & COM-Objects: Windows で OLAP キューブに接続する方法

4

1 に答える 1

1

ネストされた R リストに変換される、ネストされた VBA 配列内のレコードセットのレコードを返すADO のGetRows()メソッドの使用を検討してください。現在、レコードセット オブジェクトのみを取得します。

results = conn$Execute(query)$GetRows()
于 2016-10-16T01:08:13.120 に答える