Многомерные MDX-запросы в DataReader
Пожалуйста, смотрите код ниже:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
Dim con As AdomdConnection = New AdomdConnection("Data Source=localhost;Catalog=Analysis Services Tutorial")
Dim commandText As String = "select {[Measures].[Sales Amount] AS SalesAmount, [Measures].[Currency Key] as CurrencyKey } On COLUMNS, " & _
"{[Customer].[Full Name].Members} ON Rows " & _
",{[Customer].[Birth Date].Members} ON Pages " & _
"FROM [Adventure Works DW2012] "
Dim cmd As AdomdCommand = New AdomdCommand(commandText, con)
con.Open()
Dim objDR As AdomdDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
Dim strBuilder As New StringBuilder
strBuilder.Append("<table>")
strBuilder.Append("<tr><th>Birth Date</th><th>Full Name</th><th>Currency Key</th><th>Sales Amount</th></tr>")
Dim intCount As Integer = 0
While (objDR.Read())
intCount = intCount + 1
If intCount = 10 Then
Exit While
Else
strBuilder.Append("<tr>")
strBuilder.Append("<td>" & objDR(0) & "</td>")
strBuilder.Append("<td>" & objDR(1) & "</td>")
strBuilder.Append("<td>" & objDR(2) & "</td>")
strBuilder.Append("<td>" & objDR(3) & "</td>")
strBuilder.Append("</tr>")
End If
End While
strBuilder.Append("</table>")
Dim str As String = strBuilder.ToString
MsgBox("got here")
Catch ex As Exception
Console.Write(ex.ToString)
End Try
End Sub
Вывод следующий:
Похоже, что ADOMD.NET может работать с многомерными запросами, однако результаты сглаживаются. Это верно?
Причина, по которой я спрашиваю, состоит в том, что я прочитал несколько вопросов здесь, что говорит о том, что ADOMD.NET способен отображать только двухмерные запросы.
1 ответ
Правильный. ADOMD.net будет получать данные только в табличном формате.
Когда команда выполняет запрос, ADOMD.NET возвращает результаты в формате Resultset, табличном формате, как описано в спецификации XML для анализа, чтобы сгладить данные для объекта AdomdDataReader. Табличный формат необычен при запросе аналитических данных, учитывающих переменную размерность в таких данных.