ADOMD.NET ?

Dans cet article, nous allons voir comment utiliser ADOMD pour interagir avec un cube Analysis services.

ADOMD.NET est une extension de ADO.NET. C’est un fournisseur de données Microsoft .NET Framework qui est conçu pour communiquer avec Microsoft SQL Server Analysis Services.

En utilisant cette extension, nous pouvons lire le schéma multidimensionnel, faire des requêtes sur des cubes et récupérer les résultats.

Les commandes ou requêtes ADOMD.NET peuvent être envoyées en expressions multidimensionnelles MDX, extensions Data Mining (DMX), Analysis Services Scripting Language(ASSL) ou même une syntaxe limitée de SQL.

Le fournisseur de données ADOMD.NET est représenté par l’espace de noms Microsoft.AnalysisServices.AdomdClient qui est inclus dans le Microsoft.AnalysisServices.AdomdClient.dll situé dans : “C:\Program Files\Microsoft.NET\ADOMD.NET\100.”

L’exemple suivant montre comment utiliser le fournisseur de données ADOMD.NET  à partir d’une application client pour récupérer des données du cube Adventure Works en utilisant une requête MDX qui remplit un lecteur de données :

Commençant d’abord par télécharger le data warehouse et le cube AdventureWorks, à partir de ce lien.

Une fois les sources sont téléchargées et déployées, on commence par créer un nouveau projet Console application.

Une fois le projet est créé, dans l’onglet Solution explorer, il faut rajouter une référence vers la bibliothèque de classes ADOMD qui se trouve dans ce répertoire : C:\Program Files\Microsoft.NET\ADOMD.NET\110

Pour faire appel à cette bibliothèque dans notre classe, on utilise l’espace de noms :

using Microsoft.AnalysisServices.AdomdClient;

Coller le code suivant, qui permet d’avoir le montant des ventes et la marge brut par catégorie de produit :

Using System;
Using System.Data;
Using Microsoft.AnalysisServices.AdomdClient;
class Program{
static void Main (string[] args)  {

      AdomdConnection conn = new AdomdConnection("Data Source=localhost;Catalog=Adventure Works DW Standard Edition");
      conn.Open( );

string commandText = "SELECT {[Measures].[Sales Amount], " + "[Measures].[Gross Profit Margin]} ON COLUMNS, " + "{[Product].[Product Model Categories].[Category]} ON ROWS " + "FROM [Adventure Works] "+"WHERE ([Sales Territory Country].[United States])";

      AdomdCommand cmd = new AdomdCommand(commandText, conn);
      AdomdDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

// output the rows in the DataReader 
while(dr.Read( ))  {
for(int i = 0; i < dr.FieldCount; i++)
 Console.Write(dr[i] + (i == dr.FieldCount - 1 ? "" : ", "));
 Console.WriteLine( );
       }
       dr.Close( );
Console.WriteLine(Environment.NewLine + "Press any key to continue.");
Console.ReadKey( );
       }
}

La classe AdomdConnection représente une connexion à une source de données multidimensionnelle. La classe AdomdDataReader récupère uniquement , en lecture seule le flux de données à partir d’une source de données et elle est similaire à d’autres classes de lecture de données dans ADO.NET. Le flux de résultats est retourné dès que la requête est exécutée, permettant d’accéder aux données  dès que la première ligne est disponible , plutôt que d’attendre l’ensemble des résultats à retourner. L’objet AdomdDataReader est créé en appelant la méthode Execute () ou ExecuteReader ( ) de l’objet AdomdCommand . La méthode Read ( ) de l’objet AdomdDataReader récupère la ligne suivante des résultats.

Pour visualiser le résultat, il suffit d’exécuter le projet :

 

2 thoughts on “ADOMD.NET ?

  1. Tu as un Bug au niveau des Étiquettes !! il te faut un testeur pour faire les testes 😉 je peux faire l’affaire 🙂 😉

    Reply

    1. Oui, je veux bien, mais je vais regarder comme même cet bug pour le corriger. Merci

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.