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

ASP Discussion :

Object Dictionary


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 74
    Points : 55
    Points
    55
    Par défaut Object Dictionary
    Voila j'essaye en vain depuis 2 jours d'utiliser l'objet dictionary ...
    Je me demandai si les clé attribuer à ces tableaux associatifs pouvaient etre numérique ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    une illustration par un bout de code qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim oDic  : Set oDic = server.CreateObject("Scripting.Dictionary") 
    oDic.Add "a", " a a a a  a" 
    oDic.Add 12, "test sur valeur numérique" 
    oDic.Add "c", "c c c c c " 
    Response.Write oDic(12)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    tu n'as pas initialisé la valeur de i à 0 avant d'entrer dans la boucle

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 74
    Points : 55
    Points
    55
    Par défaut
    vla le mien :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <%
              'Ici la déclaration
              Dim oDict, aItems, x, i
             Set oDict = Server.CreateObject("Scripting.Dictionary")
             oDict.CompareMode = VBBinaryCompare
     
              'Liste des référents responsables de l'activité
              Set Rs_referent = Server.CreateObject("ADODB.Recordset")
              qry_referent="exec sp_liste_pi_activite_user @id_activite="&Rs.fields("id_activite")
              Rs_referent.Open qry_referent, conn
              WHILE not Rs_referent.eof %>
                'Ici l'affectation
               <% oDict.Add i, Rs_referent.fields("id_user") %>
               <tr>
                <td><% response.write(Rs_referent.fields("Nom") & "&nbsp;" & Rs_referent.fields("Prenom"))%></td>
                <td><a href="#" onClick="SupReferent(<%=Rs.fields("id_activite")%>,<%=Rs_referent.fields("id_user")%>);">Supprimer</a></td>
               </tr>
              <% Rs_referent.movenext
              i = i + 1
              Wend
     
              'Ici on met tout dans un tableau
              aItems = oDict.Items
              Set oDict = Nothing
              for x=0 to Ubound(aItems)
                  response.Write aItems(x) & "<br>" ->Une exception s'est produite.(l'erreur que l'on me renvoi 
              next
              Rs_referent.close
              set Rs_referent=nothing
              %>
    J'vois plus trés bien là ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 74
    Points : 55
    Points
    55
    Par défaut
    j'ai localisé l'erreur ... mais je ne comprends tjs pas pourquoi ca ne fonctionne pas ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    aItems = oDict.Items   <--- cela ne fonctionne pas 
    response.Write(Ubound(aItems)) <-- ici il affiche 0
    response.Write(oDict.count) <-- ici il affiche 1

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    as-tu bien lu mon précédent post?
    Assures-toi que
    1/i est bien initialisé à 0
    2/que ton recordset n'est pas vide

    sinon pour ton erreur initiale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for x=0 to Ubound(aItems)
    response.Write aItems(x) & "<br>" ->Une exception s'est produite.(l'erreur que l'on me renvoi 
    next
    c'est normal qu'il y ait une erreur car la cle 0 n'existe pas. Dans le cas où
    le recordset n'est pas vide la première clef vaut empty et si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%=tonDico(empty)%>
    il te renverra bien une valeur pour cette cle

Discussions similaires

  1. Notion de boucles dans Business Object
    Par lionelEIGIP dans le forum Deski
    Réponses: 1
    Dernier message: 08/04/2004, 11h26
  2. Réponses: 2
    Dernier message: 30/01/2004, 14h07
  3. [DDL] "object <table> is in use"
    Par TMuet dans le forum SQL
    Réponses: 4
    Dernier message: 26/01/2004, 10h18
  4. Réponses: 8
    Dernier message: 21/11/2003, 18h38
  5. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21

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