Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2006, 16h00   #1
Membre à l'essai
 
Avatar de Tueur_a_gage
 
Inscription : mai 2002
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 77
Points : 24
Points : 24
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 :
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 :
Nombre d`arguments ou affectation de propriété incorrects: 'valeur'
est-ce que quelqu'un a une idée ?

merci d'avance
Tueur_a_gage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 22h07   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
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 :
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+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 22h22   #3
Membre à l'essai
 
Avatar de Tueur_a_gage
 
Inscription : mai 2002
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 77
Points : 24
Points : 24
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 :
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 :
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)
Tueur_a_gage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 08h07   #4
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
Bonjour,

Que vaut la valeur de uBound de ton tableau ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 12h45   #5
Membre à l'essai
 
Avatar de Tueur_a_gage
 
Inscription : mai 2002
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 77
Points : 24
Points : 24
0 c'est un tableau ne contenant qu'un seule valeur
Tueur_a_gage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 13h58   #6
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
C'est pas franchement un tableau alors...
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 14h38   #7
Membre à l'essai
 
Avatar de Tueur_a_gage
 
Inscription : mai 2002
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 77
Points : 24
Points : 24
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
Tueur_a_gage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 15h15   #8
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
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.
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 15h20   #9
Membre à l'essai
 
Avatar de Tueur_a_gage
 
Inscription : mai 2002
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 77
Points : 24
Points : 24
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
Tueur_a_gage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 20h09   #10
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
mmmh...
Pas très constructif.
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h09.


 
 
 
 
Partenaires

Hébergement Web