IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSAS Discussion :

exécuter requête XMLA en C#.


Sujet :

SSAS

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut exécuter requête XMLA en C#.
    Bonjour,



    Je cherche un code C# pour exécuter et analyser le résultat de requêtes XMLA sur un CUBE SQL SERVER 2008.

    Actuellement j’utilise le module AdomdConnection pour de connecter à mon CUBE mais je n’arrive pas à faire exécuter du XMLA.



    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    string strCnx = "Data Source=SERVEUR;Initial catalog=Adventure Works";
     
    AdomdConnection cnx = new AdomdConnection(strCnx);
     
    cnx.Open();
     
    CubeDef cube = cnx.Cubes["Adventure Works"];
     
    AdomdCommand cmd = new AdomdCommand();
     
    cmd.Connection = cnx;
     
    //cmd.CommandText = "SELECT {[Meaesures].[Reseller Sales Amount]} on 0 FROM [Adventure Works]"; Les requete MBR s’exécute correctement.
     
     
     
    cmd.CommandText = "<Discover xmlns='urn:schemas-microsoft-com:xml-analysis'><RequestType>MDSCHEMA_MEMBERS</RequestType><Restrictions><RestrictionList><CUBE_NAME>Adventure Works</CUBE_NAME><HIERARCHY_UNIQUE_NAME>[Customer].[City]</HIERARCHY_UNIQUE_NAME></RestrictionList></Restrictions><Properties><PropertyList><Format>Tabular</Format><AxisFormat>TupleFormat</AxisFormat></PropertyList></Properties></Discover>";           
     
     CellSet cellset = cmd.ExecuteCellSet();

    CellSet cellset = cmd.ExecuteCellSet(); //ERREUR LORS DE L’EXECUTION: L'élément Discover ligne 7, colonne 25 (espace de noms urn:schemas-microsoft-com:xml-analysis) ne peut pas apparaître dans Envelope/Body/Execute/Command.







    Merci d'avance

  2. #2
    Membre actif
    Inscrit en
    Janvier 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2009
    Messages : 198
    Points : 244
    Points
    244
    Par défaut
    Bonjour,

    Je pense que ton probleme viens de ce que tu souhaites faire avec la commande XMLA. La methode Discover est le XMLA issu d'une commande AMO.

    Alexis Molteni

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    La solution AMO est la bonne, il y a aussi la possibilité d'utiliser l'API Microsoft.AnalysisServices.Xmla qui expose Discover. Il doit y avoir un exemple sur le blog de Gosbell, je ne me rappelle plus où. Par contre la doc de cette API est introuvable.

    François JEHL

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Bonjour,


    merci pour vos réponses.

    J'ai contourné mon problème en utilisant l'API Microsoft.AnalysisServices.AdomdClient. Cette API me permet de remonter les informations souhaitées.
    En fait, j'avais abandonné l'API Microsoft.AnalysisServices.Xmla car je ne trouvé pas la DLL. Vous sauriez si elle est téléchargeable et où?

    cordialement,

  5. #5
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Sous 2005 c'est Microsoft.AnalysisServices.Xmla.dll dans \Microsoft SQL Server\90\SDK\Assemblies

    François JEHL

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par FrancoisJehl Voir le message
    Sous 2005 c'est Microsoft.AnalysisServices.Xmla.dll dans \Microsoft SQL Server\90\SDK\Assemblies

    François JEHL
    Le dossier \Microsoft SQL Server\90\SDK\Assemblies existe bien mais je n'ai pas cette dll à l'intérieur.

    Pour info j'ai SQL Serveur 2008.


    Cdt,

  7. #7
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Oups je n'avais pas vu. Je citais cette API pour te répondre, mais ce n'en est pas vraiment une: elle est utilisée dans SSMS 2005 mais ne doit théoriquement pas servir à des développements d'où sa non documentation

    De toute manière tu peux toujours éviter de l'utiliser, par exemple avec Adomd tu as accès à une méthode GetSchema ou un truc du style, qui doit éxécuter un genre de Discover, et il y a AMO comme disait Alexis, qui est ce qui doit être utilisé en pareil cas.

    Pour te l'envoyer dans l'idée pas de soucis - même si ça n'est pas très intéressant pour toi, ça ne devrait pas marcher sur du 2008 sauf miracle - sauf que je suis à l'étranger sans trop d'accès à des mails qui acceptent des pièces jointes...

    François JEHL

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Je te remercie je vais continuer avec l'API Microsoft.AnalysisServices.AdomdClient, très bien pour faire ce que je souhaite .

    Cdt,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 33
    Dernier message: 06/06/2006, 14h41
  2. Exécution requête SQL + easyphp1.8
    Par Chengj dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/05/2006, 16h39
  3. Réponses: 2
    Dernier message: 04/04/2006, 11h46
  4. erreur exécution requête
    Par MANU_2 dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/10/2005, 07h27
  5. exécuter requête au clic sur valider
    Par rangernoir dans le forum Access
    Réponses: 6
    Dernier message: 09/09/2005, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo