2016-05-25 12 views
0

Sie den Code unten Bitte beachten Sie:Multi Dimensional MDX-Abfragen in einer 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 

Der Ausgang ist wie folgt:

enter image description here

es, dass ADOMD.NET erscheint mit mehrdimensionale Abfragen umgehen können , aber die Ergebnisse sind abgeflacht. Ist das korrekt?

Der Grund, warum ich frage, ist, weil ich hier ein paar Fragen gelesen habe, die darauf hindeuten, dass ADOMD.NET nur zweidimensionale Abfragen anzeigen kann.

Antwort

0

Korrekt. ADOMD.net wird nur Daten in einem Tabellenformat abrufen.

Als Befehl führt die Abfrage, ADOMD.NET die Ergebnisse im Resultset Format zurückgibt, eine tabellarische Form wie für Analyse Spezifikation in der XML beschrieben, die Daten für das AdomdDataReader Objekt zu glätten. Ein Tabellenformat ist ungewöhnlich, wenn analytische Daten unter Berücksichtigung der variablen Dimensionalität in solchen Daten abgefragt werden.

Retrieving Data from the AdomdDataReader