oui cela marche grace à la fonction instr
Merci à toi
oui cela marche grace à la fonction instr
Merci à toi
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Comment pourrais-je transcrire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SI toutes les adresses vérifiées sont valides (succès du ping) ALORS affichage SUCCES 'par exemple FIN SI
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Salut,
Tu peux faire de cette manière.
Au début du code tu initialise une variable à 1 ou true.
Tu fais ton traitement sur tes adresses IP.
Si il y en a une qui n'est pas bonne tu passes la variable à 0 ou false.
A la fin tu testes la valeur de ta variable.
Si elle est à 1 ou true c'est que tout est bon sinon c'est qu'il y a eu au moins un test qui n'est pas passé.
" L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
La Rochefoucauld
Bonne idée,
de ton aide
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
J'ai quelque chose d'un peu compliqué à faire :
je veux vérifier l'état de tous les équipements d'un site.
Alors j'affiche tous les sites d'une entreprise dans un tableau comme ceci :Ce que je veux faire c'est pour chaque site, je vérifier tous les équipements de ce site et s'il sont tous actifs j'affiche l'icone du site en vert, sinon en rouge.
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 DO UNTIL RS1.EOF FOR k=1 to 10 Response.Write("<TR>") FOR i=0 to 2 IF not RS1.EOF then Response.Write("<TD Align=center bgColor=#FF0000>") Response.Write("<IMG SRC=http://127.0.0.1/test/BITMAPS/SUBNET5.ICO Width=40></A><BR>"&RS1("site")) Response.Write("</TD>") RS1.MoveNext End IF NEXT NEXT LOOP
Puis je passe au site suivant et je vérifie à nouveau les équipements de ce nouveau site (qui sont différent)
Pour cela je doit créer un nouveau RecordSetLe problème c'est que ne vois pas trop comme je dois imbriquer tous ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SQLQuery2="SELECT address FROM equipement WHERE site='"&RS1("site")&"';" RS2.Open SQLQuery2, supervisionConnection
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Salut,
De ton recordeset tu recupères une liste d'adresses IP à tester j'imagine.
Connaissant le nb d'adresse tu créés un tableau aux dimensions necessaires.
Puis, quand tu fais tes ping tu mets dans le tableau l'adresse et la réponse de l'equipement.
Enfin, il te suffit de repasser dans ton tableau pour affichier le resultat ou le mettre en base.
Ai-je bien compris?
A+
"Winter is coming" (ma nouvelle page d'accueil)
Oui je récupère bien les adresses IP mais je ne créer pas de tableau, je compte faire comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DO UNTIL RS2.EOF strAddr=RS2(0) fncPingHtml(strAddr) if instr(fncPingHtml(strAddr),"Ip success") = 0 then result=false else result=result end if RS2.MoveNext LOOP
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Ok, mais ce code ne te permet pas (pour le moment) de stocker le résultat pour l'utiliser pas la suite.
Cela dit en passant tu executes deux fois ta fonction "fncPingHtml". C'est pas utile. Tu peux supprimer la première fois.
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DO UNTIL RS2.EOF strAddr=RS2(0) fncPingHtml(strAddr) ' UNE FOIS if instr(fncPingHtml(strAddr),"Ip success") = 0 then 'DEUX FOIS result=false else result=result end if RS2.MoveNext LOOP
"Winter is coming" (ma nouvelle page d'accueil)
J'ai le code suivant:Le problème c'est qu'on me signal une erreur sur ma requète SQLQuery2, sauriez-vous pourquoi
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 ' Connexion à la base : 'Création de l'objets connection dim supervisionConnection Set supervisionConnection = Server.CreateObject("ADODB.Connection") 'Localisation de la base de données access connpath = "DBQ=" & Server.MapPath("supervision.mdb") 'Ouverture de la base de données access supervisionConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; " & connpath 'Requète 'selection des sites appartenant à l'entreprise connectée SQLQuery1="SELECT site FROM site WHERE entreprise='"&Request.Cookies("nom_entreprise")&"';" 'Exploitation des résultats dans un recordset Dim RS1,RS2 Set RS1=Server.CreateObject("ADODB.Recordset") Set RS2=Server.CreateObject("ADODB.Recordset") RS1.Open SQLQuery1, supervisionConnection %> <!--#include file="fncPingHtml.txt" --> <% Response.Write("<BR> <BR>") Response.Write("<TABLE Width=20% Align=center>") DO UNTIL RS1.EOF FOR k=1 to 10 Response.Write("<TR>") FOR i=0 to 2 IF not RS1.EOF then Dim strAddr SQLQuery2="SELECT adresse FROM equipement WHERE site='"&RS1(0)&"';" RS2.Open SQLQuery2, supervisionConnection Dim result result=true DO UNTIL RS2.EOF strAddr=RS2(0) if instr(fncPingHtml(strAddr),"Ip success") = 0 then result=false else result=result end if RS2.MoveNext LOOP IF result=false THEN Response.Write("<TD Align=center bgColor=#FF0000>") ELSE Response.Write("<TD Align=center bgColor=#33FF00>") END IF Response.Write("<IMG SRC=http://127.0.0.1/test/BITMAPS/SUBNET5.ICO Width=40></A><BR>"&RS1(0)) Response.Write("</TD>") RS1.MoveNext End IF NEXT Response.Write("</TR>") NEXT LOOP Response.Write("</TABLE>") 'Fermetures des recordsets RS1.close set RS1 = nothing RS2.close set RS2 = nothing 'Fermetures des connexions aux bases de données supervisionConnection.close set supervisionConnection = nothing
De plus, mon code vous paraît-il correct
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Si tu essaie de faire unavant de l'executer pour voir a quoi ressemble ta requete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part response.write(sqlquery2)
Cela te donne quoi?
" L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
La Rochefoucauld
La requète resemble àDonc le requète est bonne ...SELECT adresse FROM equipement WHERE site='Baccarat'
Mais c'est peut-être le fait de mettre l'exécution dans une boucle qui pose problème, non ?
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
C'est quoi ton erreur?
" L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
La Rochefoucauld
On m'indique une erreur sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part RS2.Open SQLQuery2, supervisionConnection
Type d'erreur :
ADODB.Recordset (0x800A0E79)
/test/marey.asp, line 51Error ADO distant : l'opération demandée n'est pas autorisée si l'objet est ouvert.
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Y'a quoi autour de/test/marey.asp, line 51
"Winter is coming" (ma nouvelle page d'accueil)
ligne 51 c'est
Et autour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part RS2.Open SQLQuery2, supervisionConnection
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 DO UNTIL RS1.EOF FOR k=1 to 10 Response.Write("<TR>") FOR i=0 to 2 IF not RS1.EOF then Dim strAddr SQLQuery2="SELECT adresse FROM equipement WHERE site='"&RS1(0)&"';" RS2.Open SQLQuery2, supervisionConnection Dim result result=true DO UNTIL RS2.EOF strAddr=RS2(0) if instr(fncPingHtml(strAddr),"Ip success") = 0 then result=false else result=result end if RS2.MoveNext LOOP
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Ok. Tu ne peux pas imbriquer deux boucles while sur le meme recordset car ta deuxième boucle a fait arriver le curseur à la fin. Il faut utiliser deux recordset car tu ne peux pas le repositionner correctement à chaque tour de ta première boucle.
Attention à ne pas partir dans une boucle sans fin...
A+
"Winter is coming" (ma nouvelle page d'accueil)
j'utilise bien deux recordsets:
Comment-puis-je faire sinon ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DO UNTIL RS1.EOF FOR k=1 to 10 Response.Write("<TR>") FOR i=0 to 2 IF not RS1.EOF then Dim strAddr SQLQuery2="SELECT adresse FROM equipement WHERE site='"&RS1(0)&"';" RS2.Open SQLQuery2, supervisionConnection Dim result result=true DO UNTIL RS2.EOF
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Autant pour moi...
Est-ce que tu refermes bien RS2 dans tes boucles?
Peux-tu mettre tout le code des deux boucles?
A+
"Winter is coming" (ma nouvelle page d'accueil)
Effectivement le problème venais de làEnvoyé par Immo
J'ai donc corrigé mon code et le voici qui marche :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 <% ' Connexion à la base : 'Création de l'objets connection dim supervisionConnection Set supervisionConnection = Server.CreateObject("ADODB.Connection") 'Localisation de la base de données access connpath = "DBQ=" & Server.MapPath("supervision.mdb") 'Ouverture de la base de données access supervisionConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; " & connpath 'Requète 'selection des sites appartenant à l'entreprise connectée SQLQuery1="SELECT site FROM site WHERE entreprise='"&Request.Cookies("nom_entreprise")&"';" 'Exploitation des résultats dans un recordset Dim RS1,RS2 Set RS1=Server.CreateObject("ADODB.Recordset") RS1.Open SQLQuery1, supervisionConnection %> <!--#include file="fncPingHtml.txt" --> <% Response.Write("<BR> <BR>") Response.Write("<TABLE Width=20% Align=center>") DO UNTIL RS1.EOF FOR k=1 to 10 Response.Write("<TR>") FOR i=0 to 2 IF not RS1.EOF then Dim strAddr SQLQuery2="SELECT adresse FROM equipement WHERE site='"&RS1(0)&"';" Set RS2=Server.CreateObject("ADODB.Recordset") RS2.Open SQLQuery2, supervisionConnection Dim result result=true DO UNTIL RS2.EOF strAddr=RS2(0) fncPingHtml(strAddr) if instr(fncPingHtml(strAddr),"Ip success") = 0 then result=false else result=result end if RS2.MoveNext LOOP IF result=false THEN Response.Write("<TD Align=center bgColor=#FF0000>") ELSE Response.Write("<TD Align=center bgColor=#33FF00>") END IF Response.Write("<IMG SRC=http://127.0.0.1/test/BITMAPS/SUBNET5.ICO Width=40></A><BR>"&RS1("site")) Response.Write("</TD>") RS1.MoveNext End IF NEXT Response.Write("</TR>") NEXT RS2.close set RS2 = nothing LOOP Response.Write("</TABLE>") 'Fermeture du recordset RS1.close set RS1 = nothing 'Fermeture de la connexion a la base de données supervisionConnection.close set supervisionConnection = nothing %>
Merci de votre aide
L'effet developpez.com :
Avec nos pensées, nous créons le monde. [Bouddha]
Ne devrais-tu pas plutôt avoirDe plus, à quoi sert ta boucle for? Tu n'utilises pas l'indice... Du coup est-ce que tu ne fais pas 3 fois la même boucle?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 end if RS2.MoveNext LOOP RS2.close IF result=false THEN
Et puis tu détruis ton objet RS2 à chaque tour de RS1. C'est inutile. Declare le en dehors des boucles, ouvre et ferme le dans les boucles et detruis le à la fin de ton code.
A+
"Winter is coming" (ma nouvelle page d'accueil)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager