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

SSRS Discussion :

[SSRS][2005][MDX] connexion OLE DB


Sujet :

SSRS

  1. #1
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut [SSRS][2005][MDX] connexion OLE DB
    BOnjour,

    J'ai un rapport avec un dataset connecté en OLEDB avec mon cube.
    J'ai donc une requete MDX pour avoir mes données, et je voudrai ajouter un parametre. Mais il n'aime pas les syntaxes que j'ai essayées...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ="SELECT NON EMPTY { [Measures].[MNT] } ON COLUMNS, NON EMPTY { [Dim Produit].[NUMERO].[NUMERO].ALLMEMBERS  } ON ROWS 
    FROM (SELECT ( [Date de début].[DATE].&[" + CStr(Year(Parameters!FromDate.Value)) + "-" + Right("0" + 
    Cstr(Month(Parameters!FromDate.Value)), 2) + "-"+ Right("0" + Cstr(Day(Parameters!FromDate.Value)), 2) + "T00:00:00] :[Date de début].[DATE].&["+ CStr(Year(Parameters!ToDate.Value)) + "-" + Right("0" + Cstr(Month(Parameters!ToDate.Value)), 2) + "-"+ 
    Right("0" + Cstr(Day(Parameters!ToDate.Value)), 2) +"T00:00:00] ) on columns 
    FROM (SELECT(STRTOSET(parameters!DimProduitNUMERO.value)CONSTRAINED) on columns
    FROM [CUBE]))"
    J'ai une erreur
    Analyseur : la suntaxe pour "." est incorrecte
    ET si je mets la syntax suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ="SELECT NON EMPTY { [Measures].[MNT] } ON COLUMNS, NON EMPTY { [Dim Produit].[NUMERO].[NUMERO].ALLMEMBERS  } ON ROWS 
    FROM (SELECT ( [Date de début].[DATE].&[" + CStr(Year(Parameters!FromDate.Value)) + "-" + Right("0" + 
    Cstr(Month(Parameters!FromDate.Value)), 2) + "-"+ Right("0" + Cstr(Day(Parameters!FromDate.Value)), 2) + "T00:00:00] :[Date de début].[DATE].&["+ CStr(Year(Parameters!ToDate.Value)) + "-" + Right("0" + Cstr(Month(Parameters!ToDate.Value)), 2) + "-"+ 
    Right("0" + Cstr(Day(Parameters!ToDate.Value)), 2) +"T00:00:00] ) on columns 
    FROM (SELECT(STRTOSET(@DimProduitNUMERO)CONSTRAINED) on columns
    FROM [CUBE]))"
    J'ai l'erreur suivante:
    La requete contient le parametre "DimProduitNumero" qui n'est pas déclaré
    Qqn pourrait il m'aider dans la syntaxe à mettre?
    merci d'avance.

  2. #2
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Il faudrait définir des paramètres pour ton dataset. En haut de la zone de saisie de ton script, à gauche du bouton process, tu as une icone avec un @. La dedans tu défini des paramètres avec les même noms que les paramètres de ton rapport.
    Ensuite tu les utilises avec un STRTOSET(@InterComm) ou STRTOMEMBER(@DateFin).

  3. #3
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Avec ca, ca devrait aller mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ="SELECT NON EMPTY { [Measures].[MNT] } ON COLUMNS, NON EMPTY { [Dim Produit].[NUMERO].[NUMERO].ALLMEMBERS  } ON ROWS 
    FROM (SELECT ( [Date de début].[DATE].&[" + CStr(Year(Parameters!FromDate.Value)) + "-" + RIGHT("0" + 
    Cstr(Month(Parameters!FromDate.Value)), 2) + "-"+ RIGHT("0" + Cstr(Day(Parameters!FromDate.Value)), 2) + "T00:00:00] :[Date de début].[DATE].&["+ CStr(Year(Parameters!ToDate.Value)) + "-" + RIGHT("0" + Cstr(Month(Parameters!ToDate.Value)), 2) + "-"+ 
    RIGHT("0" + Cstr(Day(Parameters!ToDate.Value)), 2) +"T00:00:00] ) on columns 
    FROM (SELECT(STRTOSET(" + parameters!DimProduitNUMERO.value + ")CONSTRAINED) on columns
    FROM [CUBE]))"

  4. #4
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    Nouvelle tentative :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ="SELECT NON EMPTY { [Measures].[MNT] } ON COLUMNS, NON EMPTY { [Dim Produit].[NUMERO].[NUMERO].ALLMEMBERS  } ON ROWS 
    FROM (SELECT ( [Date de début].[DATE].&[" + CStr(Year(Parameters!FromDate.Value)) + "-" + RIGHT("0" + 
    Cstr(Month(Parameters!FromDate.Value)), 2) + "-"+ RIGHT("0" + Cstr(Day(Parameters!FromDate.Value)), 2) + "T00:00:00] :[Date de début].[DATE].&["+ CStr(Year(Parameters!ToDate.Value)) + "-" + RIGHT("0" + Cstr(Month(Parameters!ToDate.Value)), 2) + "-"+ 
    RIGHT("0" + Cstr(Day(Parameters!ToDate.Value)), 2) +"T00:00:00] ) on columns 
    FROM (SELECT([Dim Produit].[NUMERO].&["parameters!DimProduitNUMERO.value+"]) on columns
    FROM [CUBE]))"
    j'ai l'erreur suivante :
    Impossible de définir la texte de commande pour le dataset "NomDataset"
    Erreur lors du traitement de l'expression de CommandText pour le dataset "NomDataset"

  5. #5
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    j'ai essayé ce que tu m'as mis
    ...FROM (SELECT(STRTOSET(" + parameters!DimProduitNUMERO.value + ")CONSTRAINED) on columns
    FROM [CUBE]))"]))"
    Mais j'ai toujours l'erreur :
    Impossible de définir la texte de commande pour le dataset "NomDataset"
    Erreur lors du traitement de l'expression de CommandText pour le dataset "NomDataset"
    Sachant que si je retire cette ligne tout fonctionne bien, mon bornage de date fonctionne à merveille .

  6. #6
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    j'ai un doute...
    Mon parametre "DimProduitNUMERO" est basé sur un dataset de type "Microsoft SQL Server Analysis Services", alors que mon dataset dans sur lequel est basé mon rapport est de type OLE DB.
    Est ce que ca peut etre la raison de mon erreur?

  7. #7
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    j'ai essayé :
    ...FROM (SELECT(STRTOSET(" + parameters!DimProduitNUMERO.value + ")CONSTRAINED) on columns
    FROM [CUBE]))"
    j'ai l'erreur :
    Analyseur : La syntaxe pour "CONSTRAINED" est incorrecte
    j'ai essayé aussi:
    ...FROM (SELECT(STRTOSET(" + parameters!DimProduitNUMERO.value + ",CONSTRAINED) on columns
    FROM [CUBE]))"
    j'ai l'erreur :
    Analyseur : La syntaxe pour "," est incorrecte
    et j'ai essayé aussi:
    ...FROM (SELECT(STRTOSET(" + parameters!DimProduitNUMERO.value + ")) on columns
    FROM [CUBE]))"
    Analyseur : La syntaxe pour "," est incorrecte
    Alors que je n'ai pas de "," dans ma requete...

    Sinon j'ai essayé ce que tu m'as mis, Jinroh77, en ayant défini mon parametre dans mon dataset.
    Que je mette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...FROM (SELECT(STRTOSET(@DimMarcheNUMERO) CONSTRAINED ) on columns
    FROM [CUBE]))"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...FROM (SELECT(STRTOSET(@DimMarcheNUMERO)) on columns
    FROM [CUBE]))"
    J'ai l'erreur suivante :
    "Query executon failed for data set 'Country'. The following system error occurred: .
    Error Code = 0x80070057, External Code = 0x00000000:."
    J'ai bien défini mon parametre dans les propriétés du dataset.
    c'est une erreur que tu as deja eu Reskibil, j'ai vu ca dans un précédent post, mais tu n'as pas mis comment tu avais fait pour resoudre cette erreur...


    vois pas...

  8. #8
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Analyseur : La syntaxe pour "," est incorrecte
    Ca ressemble a ce que j'ai eu 2-3 fois. Donc maintenant, il faut que tu t'amuses a vérifier que tous les espaces sont bons. En OLE DB, la grande blague c'est qu'un saut de ligne n'est pas interprété donc si tu as par exemple :

    SELECT
    NON EMPTY

    sans espace apres le SELECT, il va le lire comme SELECTNON EMPTY.
    Donc en gros, il faut mettre toute ta requete sur une seule ligne et ca devrait aller. Apres pour la syntaxe du parametre, tout dépend du parametre. Si ton parametre.value te renvoie bien un tuple, ca devrait marcher.

  9. #9
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    j'ai vérifié j'ai bien tous mes espaces...mais j'ai toujours mon erreur avec la ","...la seule virgule que j'ai c'est celle qui suit ma mesure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="SELECT NON EMPTY { [Measures].[MNT MARCHE - Fact Suivi Marche] } ON COLUMNS,
    Je ne vois pas pourquoi ca bloque ici.
    Mon parametre me renvoie une liste de numero de produit, j'en sélectionne un et j'execute ma requete...
    Je n'arrive pas a me définir "tuple"...t'aurais une définition claire?

  10. #10
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Et bien 2 possibilités :
    - Soit ton parametre est basé sur un vrai dataset de parametre et donc te renvoie une valeur du type [Dim Produit].[NUMERO].&[123456] auquel cas tu dois appeler uniquement le parametre

    - Soit ton parametre vient d'une liste ou autre dimension etc... et à ce moment la il te renvoie qu'une simple valeur que tu dois concatener :
    [Dim Produit].[NUMERO].&[" + parameters!DimProduitNUMERO.value + "]

  11. #11
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    alors comme je te disais mon parametre est basé sur un dataset, donc je dois effectivement avoir une valeur retournée de type [Dim Produit].[NUMERO].&[123456].
    Qd tu dis
    tu dois appeler uniquement le parametre
    , je dois mettre quoi?
    ...FROM (SELECT(STRTOSET(+"parameters!DimProduitNUMERO.value+")) ON COLUMNS
    FROM [CUBE]))"
    ??

  12. #12
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Ca mais avec les " au bon endroit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...FROM (SELECT(STRTOSET(" + parameters!DimProduitNUMERO.value + ")) ON COLUMNS
    FROM [CUBE]))"
    Si tu mets un CONSTRAINED et qu'il te dit que c'est pas respecté, ca veut dire que la valeur renvoyée par ton parametre est fausse.

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ="SELECT NON EMPTY { [Measures].[MNT] } ON COLUMNS, 
    NON EMPTY { [Dim Produit].[NUMERO].[NUMERO].ALLMEMBERS  } ON ROWS 
    FROM (SELECT ( [Date de début].[DATE].&[" + CStr(Year(Parameters!FromDate.Value)) + "-" + RIGHT("0" + 
    Cstr(Month(Parameters!FromDate.Value)), 2) + "-"+ RIGHT("0" + Cstr(Day(Parameters!FromDate.Value)), 2) + "T00:00:00] :[Date de début].[DATE].&["+ CStr(Year(Parameters!ToDate.Value)) + "-" + RIGHT("0" + Cstr(Month(Parameters!ToDate.Value)), 2) + "-" + 
    RIGHT("0" + Cstr(Day(Parameters!ToDate.Value)), 2) +"T00:00:00] ) on columns 
    FROM ( SELECT( STRTOSET(" + parameters!DimProduitNUMERO.value + "), CONSTRAINED) on columns
    FROM [CUBE]))"
    devrait marcher. Sinon je vois pas.

Discussions similaires

  1. [SSRS][2005] Clause "Where" en mdx
    Par geof dans le forum SSRS
    Réponses: 3
    Dernier message: 19/09/2008, 15h48
  2. Réponses: 9
    Dernier message: 12/09/2008, 16h08
  3. [SSRS][2005][MDX] Créer une mesure
    Par geof dans le forum SSRS
    Réponses: 27
    Dernier message: 01/07/2008, 17h08
  4. [SSRS][2005][MDX] Left outer join en MDX
    Par geof dans le forum SSRS
    Réponses: 7
    Dernier message: 20/06/2008, 12h15
  5. Connexion OLE
    Par COLLOUARD dans le forum Access
    Réponses: 1
    Dernier message: 19/02/2006, 14h41

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