Numéro d'article: 824304 - Dernière mise à jour: mardi 9 décembre 2003 - Version: 1.2

La propriété profondeur de l'objet Level renvoie toujours la valeur-1

Agrandir tout | Réduire tout

Symptômes

La propriété Depth d'une instance de l'objet Level renvoie toujours-1 au lieu du niveau de profondeur réelle.

Cause

Ce problème se produit car le code qui mappe des types de données interne de SQL Server 2000 Analysis Services dans les sous-types de type VARIANT a changé. Le sous-type de type VARIANT est affecté à la valeur qui représente le niveau de profondeur a changé. Étant donné que la méthode GetSchemaObject ne prend pas en charge le sous-type de nouveau pour la propriété Depth , GetSchemaObject ignore la nouvelle valeur et conserve la valeur par défaut de-1. Cette valeur est affectée par le constructeur de l'objet Level .

Contournement

Pour contourner ce problème et obtenir le niveau de profondeur réelle, utilisez la propriété LevelDepth, du premier membre de l'objet Level . Pour ce faire, utiliser le code suivant :
Dim oLevel As ADOMD.Level
    Dim oMember As ADOMD.Member
    Dim oCellset As ADOMD.Cellset
    Dim lMembLvDepth As Long
    Dim lLevelDepth As Long
    Dim oCube As ADOMD.CubeDef
    Set oCatalog = New ADOMD.Catalog
    oCatalog.ActiveConnection = "Provider=MSOLAP;Data Source=localhost;Initial Catalog=Foodmart 2000"
    Set oCube = oCatalog.CubeDefs("Warehouse")
    Set oLevel = oCube.GetSchemaObject(adObjectTypeLevel, "[Store].[Store Name]")
    Debug.Print oLevel.Members(0).LevelDepth 'This is the suggested workaround

Statut

Microsoft est conscient de ce problème. Ce problème peut être résolu dans une version ultérieure des produits dans la section " S'applique à".

Plus d'informations

Pour reproduire ce problème, utilisez le code suivant :
Dim oLevel As ADOMD.Level
    Dim oMember As ADOMD.Member
    Dim oCellset As ADOMD.Cellset
    Dim lMembLvDepth As Long
    Dim lLevelDepth As Long
    Dim oCube As ADOMD.CubeDef
    Set oCatalog = New ADOMD.Catalog
    oCatalog.ActiveConnection = "Provider=MSOLAP;Data Source=localhost;Initial Catalog=Foodmart 2000"
    Set oCube = oCatalog.CubeDefs("Warehouse")
    Set oLevel = oCube.GetSchemaObject(adObjectTypeLevel, "[Store].[Store Name]")
    Debug.Print oLevel.Depth ' This returns -1, which is not the actual depth level

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Data Access Components 2.7
  • Microsoft Data Access Components 2.8
Mots-clés : 
kbmt kbprb KB824304 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 824304  (http://support.microsoft.com/kb/824304/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
 

Traductions disponibles