Analysis Services 2005 utilise la technologie des procédures stockées pour augmenter le nombre de fonction MDX. Elles sont enregistrées dans 2 librairies: la librairie « Visual Basic pour applications » et la librairie « Microsoft Excel worksheet ». La librairie « Visual Basic pour application » est enregistrée comme une assembly en CLR et la librairie « Excel » comme une assembly en COM. Les requêtes MDX peuvent utiliser toutes les fonctions VBA ou Excel, comme si elles étaient des fonctions MDX natives.
Bien que l’utilisation de ces fonctions soit complètement transparente pour l’utilisateur, en terme de performance, il y a une différence entre les fonctions MDX natives et les fonctions VBA ou Excel functions. Ainsi, appeler une fonction VBA est plus couteux que d’appeler une fonction MDX. Afin de permettre au application cliente de fonctionner de façon plus rapide, un ensemble des fonctions VBA a été implémenté directement dans le code d’Analysis Services, de ce fait, les fonctions VBA « Internes » s’exécutent plus rapidement que les fonctions VBA « Classiques ». Une fonction VBA « Interne » s’utilise de façon totalement transparente comme une fonction VBA classique. Lorque l’on développe une requête MDX, il est alors très intéressant de connaitre et différencier les fonctions VBA « Classiques » des fonctions VBA « Internes ».
Le tableau ci-dessous liste les fonctions VBA (connu en février 2007), et précise pour chacune d’elles si elle est interne ou non.
Fonction | Interne ? | Description |
Abs | Oui | Retourne la valeur absolue d’un nombre spécifié |
Asc | Non | Retourne une valeur de type Integer qui représente le code de caractère correspondant à un caractère |
AscW | Non | Retourne une valeur de type Integer qui représente le code de caractère correspondant à un caractère |
Atn | Non | Retourne une valeur Double contenant l’angle dont la tangente est le nombre spécifié |
CBool | Non | Convertie des expressions en valeurs Boolean |
CByte | Non | Convertie des expressions en valeurs de type Byte |
CCur | Non | Convertie des expressions en valeurs de type Monnaie |
CDate | Oui | Convertie des expressions en valeurs de type Date |
CDbl | Non | Convertie des expressions en valeurs de type Double |
CDec | Non | Convertie des expressions en valeurs Décimal |
Choose | Non | Sélectionne et retourne une valeur à partir d’une liste d’arguments |
Chr | Non | Retourne le caractère associé au code de caractère spécifié |
ChrW | Non | Retourne le caractère unicode associé au code de caractère spécifié |
CInt | Oui | Convertie des expressions en valeurs Numérique entière |
CLng | Oui | Convertie des expressions en valeurs de type Long |
Cos | Non | Retourne une valeur Double contenant le cosinus de l’angle spécifié. |
CSng | Non | Convertie des expressions en valeurs de type Single |
CStr | Oui | Convertie des expressions en valeurs de type Texte |
CVar | Non | Convertie des expressions en valeurs de type Variant |
Date | Non | |
DateAdd | Non | Retourne une valeur Date contenant une valeur de date et d’heure auxquelles un intervalle de temps spécifié a été ajouté |
DateDiff | Non | Retourne une valeur de type Long spécifiant le nombre d’intervalles de temps entre deux valeurs Date |
DatePart | Non | Retourne une valeur de type Integer contenant le composant spécifié d’une valeur Date donnée |
DateSerial | Non | Retourne une valeur Date représentant une année, un mois et un jour spécifiés, l’indication d’heure ayant la valeur minuit (00:00:00) |
DateValue | Non | Retourne une valeur Date contenant l’indication de date représentée par une chaîne, l’indication d’heure ayant la valeur minuit (00:00:00) |
Day | Non | Retourne une valeur Integer comprise entre 1 et 31 représentant le jour du mois |
DDB | Non | Retourne une valeur Double indiquant la valeur d’amortissement d’un bien sur une période déterminée en utilisant la méthode d’amortissement dégressif à taux double ou toute autre méthode spécifiée |
Exp | Non | Retourne une valeur Double contenant e (base des logarithmes népériens) élevé à la puissance spécifiée. |
Fix | Non | Retournent la partie entière d’un nombre. |
Format | Non | Retourne une chaîne mise en forme conformément aux instructions contenues dans une expression String de format. |
FV | Non | Retourne une valeur de type Double indiquant le futur montant d’une annuité basée sur des versements constants et périodiques et sur un taux d’intérêt fixe |
Hex | Non | Retourne une chaîne représentant la valeur hexadécimale d’un nombre |
Hour | Non | Retourne une valeur Integer comprise entre 0 et 23 représentant l’heure du jour. |
IIF | Non | Retourne un ou deux objets selon l’évaluation d’une expression. |
InStr | Oui (SP2) | Retourne un ou deux objets selon l’évaluation d’une expression. |
Int | Oui | Cette fonction accepte un nombre ou une chaîne et retourne un decimal de l’original avec la partie de fraction supprimé |
IPmt | Non | Retourne une valeur de type Double indiquant les intérêts, pour une période donnée, d’une annuité basée sur des versements constants et périodiques et sur un taux d’intérêt fixe |
IRR | Non | Retourne une donnée de type Double indiquant le taux de rendement interne d’une série de liquidités périodiques (paiements et encaissements) |
IsArray | Oui | Retourne une valeur Boolean indiquant si une variable pointe vers un tableau |
IsDate | Non | Retourne une valeur Boolean indiquant si une expression peut être convertie en une date |
IsEmpty | Non | Retourne une valeur Boolean indiquant si une variable a été initialisé |
IsError | Oui | Retourne une valeur Boolean indiquant si une expression est un type d’exception |
IsNull | Non | Retourne une valeur Boolean indiquant si une expression contient une donnée (Null). |
IsNumeric | Non | Retourne une valeur Boolean indiquant si une expression peut être évaluée comme un nombre |
LCase | Non | Retourne une chaîne ou un caractère converti en lettres minuscules |
Left | Oui | Retourne une chaîne contenant un nombre spécifié de caractères depuis la partie gauche d’une chaîne |
Len | Oui | Retourne un entier contenant le nombre de caractères contenus dans une chaîne ou le nombre d’octets requis pour stocker une variable |
Log | Non | Retourne une valeur Double contenant le logarithme d’un nombre spécifié. Cette méthode est surchargée et peut retourner soit le logarithme népérien (de base e) d’un nombre spécifié, soit le logarithme d’un nombre spécifié dans une base spécifiée. |
LTrim | Non | Retourne une chaîne contenant la copie d’une chaîne spécifiée sans espaces à gauche (LTrim), sans espaces à droite (RTrim) ou sans espaces à droite ni à gauche (Trim) |
Mid | Oui | Retourne une chaîne contenant un nombre spécifié de caractères d’une chaîne |
Minute | Non | Retourne une valeur Integer comprise entre 0 et 59 représentant la minute de l’heure |
MIRR | Non | Retourne une donnée de type Double indiquant le taux de rendement interne modifié d’une série de liquidités périodiques (paiements et encaissements) |
Month | Non | Retourne une valeur Integer comprise entre 1 et 12 représentant le mois de l’année |
Now | Oui | Retourne une valeur DateTime correspondant à la date et heure de l’ordinateur local |
NPer | Non | Retourne une valeur de type Double indiquant le nombre d’échéances d’une annuité basée sur des versements constants et périodiques et sur un taux d’intérêt fixe |
NPV | Non | Retourne une valeur de type Double indiquant la valeur nette actuelle d’un investissement, calculée en fonction d’une série de liquidités périodiques (paiements et encaissements) et d’un taux d’escompte |
Oct | Non | Retourne une chaîne représentant la valeur octale d’un nombre |
Partition | Non | Retourne une chaîne représentant la plage calculée qui contient un nombre |
Pmt | Non | Retourne une valeur de type Double indiquant le montant d’une annuité basée sur des versements constants et périodiques et sur un taux d’intérêt fixe |
PPmt | Non | Retourne une valeur de type Double indiquant le remboursement du capital, pour une période donnée, d’une annuité basée sur des versements constants et périodiques et sur un taux d’intérêt fixe |
PV | Non | Retourne une valeur de type Double indiquant le montant actuel d’une annuité basée sur des échéances futures constantes et périodiques et sur un taux d’intérêt fixe |
QBColor | Non | Retourne une valeur Integer représentant le code couleur RVB correspondant au nombre de couleurs spécifié |
Rate | Non | Retourne une valeur de type Double indiquant le taux d’intérêt par échéance pour une annuité |
RGB | Non | Retourne une valeur Integer représentant une valeur de couleur RVB à partir d’un ensemble de composantes de couleur rouge, vert et bleu |
Right | Oui | Retourne une chaîne contenant un nombre spécifié de caractères depuis la partie droite d’une chaîne |
Rnd | Non | Retourne un nombre aléatoire de type Single. |
Round | Oui | Retourne une valeur Double contenant le nombre le plus proche de la valeur spécifiée. |
Trim | Non | Retourne une chaîne contenant la copie d’une chaîne spécifiée sans espaces à gauche (LTrim), sans espaces à droite (RTrim) ou sans espaces à droite ni à gauche (Trim) |
Second | Non | Retourne une valeur de type Integer comprise entre 0 et 59 représentant la seconde de la minute |
Sgn | Non | Retourne une valeur Integer indiquant le signe d’un nombre. |
Sin | Non | Retourne une valeur Double spécifiant le sinus d’un angle. |
SLN | Non | Retourne une valeur de type Double indiquant l’amortissement linéaire d’un bien pour une période donnée |
Space | Non | Retourne une chaîne composée d’un nombre spécifié d’espaces |
Sqr | Non | Retourne une valeur Double spécifiant la racine carrée d’un nombre. |
Str | Non | Cette fonction accepte un nombre ou une chaîne et retourne une conversion de chaînes au cas où l’original est un nombre |
StrComp | Non | Retourne -1, 0 ou 1, à partir du résultat d’une comparaison de chaînes |
StrConv | Non | Retourne une chaîne convertie comme spécifié |
Switch | Non | Évalue une liste d’expressions et retourne une valeur de type Object d’une expression associée à la première expression de la liste qui a pour valeur True |
SYD | Non | Retourne une valeur de type Double indiquant l’amortissement global d’un bien sur une période donnée |
Tan | Non | Retourne une valeur Double contenant la tangente d’un angle. |
Timer | Non | Retourne une valeur de type Float indiquant le nombre de secondes écoulé depuis minuit |
TimeSerial | Non | Retourne une valeur Date représentant une heure, une minute et une seconde spécifiées, l’indication de date ayant la valeur 1er janvier de l’année 1. |
TimeValue | Non | Retourne une valeur Date contenant l’indication d’heure représentée par une chaîne, l’indication de date ayant la valeur 1er janvier de l’année 1 |
Trim | Non | Retourne une chaîne contenant la copie d’une chaîne spécifiée sans espaces à gauche (LTrim), sans espaces à droite (RTrim) ou sans espaces à droite ni à gauche (Trim) |
TypeName | Non | Retourne une valeur String contenant les informations sur le type de données d’une variable |
UCase | Non | Retourne une chaîne ou un caractère contenant la chaîne spécifiée convertie en majuscules |
Val | Non | Retourne le nombre contenu dans une chaîne de caractère sous la forme d’une valeur numérique d’un type approprié |
Weekday | Non | Retourne une valeur de type Integer représentant le jour de la semaine |
Year | Non | Retourne une valeur de type Integer comprise entre 1 et 9999 représentant l’année |
Pas de commentaire reçu(s)
Laisser une réponse