Je voudrais savoir s'il est possaible en asp de remplir un tableau (array) avec dezs données d'une table de ma base de données, je m'explique je voudrais que tous mes NOM_USER de ma table USERS figure dans un seul et même array !!
Version imprimable
Je voudrais savoir s'il est possaible en asp de remplir un tableau (array) avec dezs données d'une table de ma base de données, je m'explique je voudrais que tous mes NOM_USER de ma table USERS figure dans un seul et même array !!
Il y a plusieurs techniques mais tu peux utiliser la méthode GetRows de l'objet Recordset :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim strSql Dim objCnn Dim objRst Dim arr Set objCnn = Server.CreateObject("ADODB.Connection") objCnn.Open ConnectionString strSql = "SELECT NOM_USER FROM USER" Set objRst = objCnn.Execute(strSql) If Not objRst.Eof Then arr = objRst.GetRows() End If
Je suis tout a fait d'accord que le code que tu m'as donner me permet de savoir combien de cellule se trouvent dans mon array mais je voudrais qu'a chaque utilisateurs present dans la table "USER" mon array soit modifier.
Voici mon code :
Ce code me permet de connaitre le nombre de users de ma table mais en aucun cas je peut rajouter chaque dans mon array ??Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <% Dim arr Set USER = Conn.Execute("SELECT * FROM UTILISATEURS") If Not USER.Eof Then arr = USER.GetRows() End If num_users = Ubound(arr,2) + 1 For i = 1 to num_users If i = num_users Then Set Utilisateurs = Conn.Execute("SELECT * FROM UTILISATEURS") Utilisateurs.MoveFirst Do While Not Utilisateurs.EOF Response.Write(Utilisateurs("LOGIN")) Response.Write("<br>") Utilisateurs.MoveNext Loop End If Next %>
je ne comprend pas ce que tu veux faire.
J'ai dans une table tous les utilisateurs de mon application et j'ai besoin pour la création d'un graphe de mettre tous mes utilisateurs dans un array.
Quand tu fais :
Tous les utilisateurs de ta table sont dans un array.Code:arr = USER.GetRows()
Et quand tu fais :
Tu peux accéder à tout tes utilisateurs.Code:
1
2
3 For i = 1 To Ubound(arr) Response.write arr(0,i) & " " & arr(1,i) .... Next
Je ne vois pas ou est le problème.
Je suis tout a fait d'accord avec toi mais je voudrais en fait faire un graphe en VbScript mais que pour ce graphe j'ai besoin d'un array, voici le code de mon graphe :
Code:
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
32
33 <%@ language="vbscript" %> <% Set Conn = Session("Conn") Set USER = Conn.Execute("SELECT LOGIN FROM UTILISATEURS") If Not USER.Eof Then arr = USER.GetRows() End If num_users = Ubound(arr,2) + 1 For i = 1 to num_users QUE DOIS METTRE ICI POUR AVOIR QUELQUE CHOSE DE SIMILAIRE A CA : labels = Array("Synapse","Christian","Nicolas","Comptoir","Alix","Richard") Next Set cd = CreateObject("ChartDirector.API") data = Array(12,14,2,5,8,1) Set c = cd.XYChart(800,240) Call c.addTitle("Nombre de demandes par utilisateurs", "timesbi.ttf", 14) Call c.setPlotArea(45, 40, 300, 160) Set layer = c.addBarLayer3(data) Call layer.set3D(Session("Graph3D")) Call layer.setBarShape(cd.CircleShape) Call c.xAxis().setLabels(labels) Call c.yAxis().setTitle("Demande") Call c.xAxis().setTitle("") Response.ContentType = "image/png" Response.BinaryWrite c.makeChart2(cd.PNG) Response.End %>
Peut être que je dis des betises mais la fonction Array() et GetRows() retournent des tableaux du même type.
Si tu poses la question c'est que tu as déjà du tester le code suivant :
Je met le retour de GetRows directement dans Labels.Code:
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 <%@ language="vbscript" %> <% Set Conn = Session("Conn") Set USER = Conn.Execute("SELECT LOGIN FROM UTILISATEURS") If Not USER.Eof Then labels= USER.GetRows() End If Set cd = CreateObject("ChartDirector.API") data = Array(12,14,2,5,8,1) Set c = cd.XYChart(800,240) Call c.addTitle("Nombre de demandes par utilisateurs", "timesbi.ttf", 14) Call c.setPlotArea(45, 40, 300, 160) Set layer = c.addBarLayer3(data) Call layer.set3D(Session("Graph3D")) Call layer.setBarShape(cd.CircleShape) Call c.xAxis().setLabels(labels) Call c.yAxis().setTitle("Demande") Call c.xAxis().setTitle("") Response.ContentType = "image/png" Response.BinaryWrite c.makeChart2(cd.PNG) Response.End %>
Ca marche ça ?
Sinon on peut compliquer un peu plus en utilisant la commande execute :
Le but du jeu est de construire la chaine Array("Synapse","Christian","Nicolas","Comptoir","Alix","Richard") puis de l'éxécuter.Code:
1
2
3
4
5
6
7
8 Dim strCommande strCommande = "Array(" For i = 1 To Ubound(arr) strCommande = strCommande & """" & arr(0,i) & """," Next strCommande = Left(strCommande,Len(strCommande)-1) strCommande = strCommande & ")" Labels = execute(strCommande)
Je suis curieux de savoir si la 2em solution fonctionne.
Tu me tiendras au courant.
J'ai fais une erreur dans mon précédent post.
J'ai confus les methodes Execute et Eval.
Voici un code qui fonctionne (je viens de la tester) :
Code:
1
2
3
4
5
6
7
8 Dim strCommande strCommande = "Array(" For i = 1 To Ubound(arr) strCommande = strCommande & """" & arr(0,i) & """," Next strCommande = Left(strCommande,Len(strCommande)-1) strCommande = strCommande & ")" Labels = Eval(strCommande)
J'ai une erreur de syntaxe sur la derniere ligne "Labels = execute(strCommande)" sur ce qui est de ton deuxieme test mais en ce qui concerne le permier test c'est sur il ne fonctionne pas, je vais tenter de chercher un peu plus sur mon erreur de syntaxe de ta deuxieme idée.
C'est quoi le composant que tu utilises?
C'est pour moi, pour ta question je peux pas t'aider.
J'utilise OWC.Chart mais je galère à mettre des graphes différents sur un même graphique. :lol: :oops: :oops:
Ton code fonctionne tres bien mais il ne me reste plus qu'a mettre mes Nom de users dans mon array et cela sera bon ...