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 :

Problème de passage de tableau en paramètre


Sujet :

ASP

  1. #1
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut Problème de passage de tableau en paramètre
    Hello

    J'ai un soucis avec le passage d'un tableau en paramètre d'une fonction.
    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
     
    Public Sub PopulateFromLDAP (resultSet)
      ' Get all informations from resulset
      Do While Not resultSet.EOF Or resultSet.BOF
        FirstName = ExtractData(resultSet.Fields("givenName"))
        LastName = ExtractData(resultSet.Fields("sn"))
        Email = ExtractData(resultSet.Fields("mail"))
     
        resultSet.MoveNext
      Loop
    end sub
     
    Private function ExtractData (valeur)
      If IsArray(valeur) Then
        For i = 0 To UBound(valeur)
          ExtractData = valeur(i) 'Erreur à ce niveau
        Next
      Else
        ExtractData = ""
      End If
    end function
    J'ai un plantage à la ligne ou je récupère la valeur (valeur(i)) avec le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nombre d`arguments ou affectation de propriété incorrects: 'valeur'
    est-ce que quelqu'un a une idée ?

    merci d'avance

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Bizarre comme façon de faire. Une fois que tu affectes une valeur à ta fonction, je crois que tu en sorts.
    Il vaudrait mieux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Arr = resultSet.Fields("givenName")
    if isarray(Arr) then
       for i = 0 to ubound(Arr)
         fisrtname = extractdata(Arr(i)) ' mais là tu ecrases firstname...
       next
    else
     
    end if
    un truc du genre.

    A+

  3. #3
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    Ce qui est bizarre et je suis d'accord est de faire une boucle dans ma fonction privée car en fait cela me fait récupérer le dernier élément systématiquement.

    Mais en fait je n'ai qu'un seul élément dans le tableau, mon resultset ne contient qu'une ligne de donnée (select issu d'une clé dans le LDAP)

    Du coup, j'ai bien sur essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private function ExtractData (valeur)
      If IsArray(valeur) Then
        ExtractData = valeur(0) 'Erreur à ce niveau
      Else
        ExtractData = ""
      End If
    end function
    Mais le résultat est le même, il ne veut pas faire le valeur(0)...
    J'ai essayé également de faire un redim de valeur avant de tester et récupérer les données, du coup je n'ai plus de plantage, mais je n'ai plus de données non plus...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private function ExtractData (valeur)
      redim valeur(0)
      If IsArray(valeur) Then
        ExtractData = valeur(0) 'plus d'erreur, mais plus de données...
      Else
        ExtractData = ""
      End If
    end function
    En fait tout se passe comme si il ne pouvait pas récupérer les données dans le tableau (valeur) alors qu'il le considère bien comme un tableau (IsArray ok)

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Que vaut la valeur de uBound de ton tableau ?

  5. #5
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    0 c'est un tableau ne contenant qu'un seule valeur

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    C'est pas franchement un tableau alors...

  7. #7
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    Je sais...mais comme ça pourra le devenir un jour.... il faudrait faire évoluer le param de retour en tableau aussi...

    mais le pb reste le même, si je fais valeur(0) directement sans parcourir le tableau, ça marche pas

  8. #8
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    En ASP je ne crois pas que tu puisses vraiment exploiter ce tableau mm si isarray est verifié. Je crois que tu devrais le reconstituer dans une boucle FOR d'abord.

  9. #9
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    C'est vraiment un beau langage de me...de ... c'est bien ce que j'avais pu lire déjà à droite ou à gauche, mais il semblait que cela marchait pour certains ??

    bon ben tant pis on va revenir à la mode manuel et faire du code un peu dégueu, mais bon ...


    merci qd même

  10. #10
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    mmmh...
    Pas très constructif.

Discussions similaires

  1. Passage de tableau en paramètre
    Par Teddy dans le forum Débuter
    Réponses: 3
    Dernier message: 26/12/2007, 11h54
  2. Réponses: 2
    Dernier message: 15/01/2007, 18h42
  3. Réponses: 5
    Dernier message: 02/08/2006, 17h05
  4. [VB] Problème de function / sub (tableau comme paramètre)
    Par elhosni dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/05/2006, 20h34
  5. Passage de tableau en paramètre...
    Par Doomi dans le forum C
    Réponses: 14
    Dernier message: 20/10/2005, 14h08

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