l'error de la mort - ASP - Programmation
Marsh Posté le 17-01-2003 à 15:33:39
ben c'est ça que je ne comprends pas car ma requête n'as pas le paramètre supplémentaire. M'enfin, je vais me dépatouuiller dans mon caca ....
Marsh Posté le 17-01-2003 à 15:50:00
Donne déja ta requete et tes parametres ca peut aider
Marsh Posté le 17-01-2003 à 15:53:41
voila la requete:
ReqMoyenneEtudiant= " SELECT Avg(Score.Valeur) AS MoyenneDeValeur, Score.CodeChapitre, Score.NumQuestionnaire, Candidat.NomEtudiant, Candidat.PrenomEtudiant"& _
" FROM Question, Candidat INNER JOIN ((Chapitre INNER JOIN Questionnaire ON (Chapitre.CodeLangue = Questionnaire.CodeLangue) AND (Chapitre.CodeChapitre = Questionnaire.CodeChapitre)) INNER JOIN Score ON (Questionnaire.CodeLangue = Score.CodeLangue) AND (Questionnaire.CodeChapitre = Score.CodeChapitre) AND (Questionnaire.NumQuestionnaire = Score.NumQuestionnaire)) ON Candidat.NumCandidat = Score.NumCandidat"& _
" GROUP BY Score.CodeChapitre, Score.NumQuestionnaire, Score.NumCandidat, Candidat.NomEtudiant, Candidat.PrenomEtudiant"& _
" HAVING (((Score.NumCandidat)=" & numCandidat & " ))"& _
" ORDER BY Score.CodeChapitre, Score.NumQuestionnaire;"
'requête qui donne la moyenne du candidat pour chaque questionnaire répondu
dbArticle.Open(ConnectionString)
rsArticleEtudiant.Open ReqMoyenneEtudiant, dbArticle, 3 <- et c'est là que ça chie.
numcandidat est donné par:
numCandidat= request.queryString("num" )
et ça marche, ça marche plus quand je donne un second paramètre dans la queryString.
Une idée?
Marsh Posté le 17-01-2003 à 17:11:24
Si tu me donne la requete qui marche tu veux que je te dise quoi de plus
DOnne celle qui ne marche pas.
C'est quelle type de valeur le deuxieme parametres (numerique, texte ?). C'est pas un bete probleme de '' ?
Marsh Posté le 20-01-2003 à 14:14:44
qu'est-ce que t'appelle un deuxième paramètre dans le querystring ?
c'est du style mapage.asp?var1=1&var2=2
?
Marsh Posté le 20-01-2003 à 14:32:21
nineinch a écrit : Exactement, pourquoi tu as une idée? |
ben comment tu rapatris les deux valeurs? Tu as deux querystring differents n'est-ce pas ?
Marsh Posté le 20-01-2003 à 14:40:31
ouais, j'ai deux query string différents avec deux paramètres qui récupèrent leurs valeurs. Une querystring est le numéro d'identifiant du mec qui se connecte, l'autre est le numéro d'enregistrements jusqu'où on a affiché, heu, suis-je clair?
pour info, et ce sera plus clair, voilà le code entier:
<%@ Language=VBScript %>
<%
'numCandidat=Session("idnum" )
numCandidat= request.queryString("num" ) 'on récupère l'identité
ConnectionString="qcm_admin_test"
public dbArticle
public rsArticleEtudiant
public rsArticleGenerale
Set dbArticle=Server.CreateObject("ADODB.Connection" )
Set rsArticleEtudiant=Server.CreateObject("ADODB.Recordset" )
'Set rsArticleGenerale=Server.CreateObject("ADODB.Recordset" )
'en tête de la page html
Response.write("<html><head><title>Historique de vos scores</title>" )
Response.write("<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1></head>" )
Response.write("<body bgcolor=#FFFFFF text=#000000>" )
dim ReqMoyenneEtudiant,ReqMoyenneGenerale
dim Questionnaire, CodeChapitre, MoyenneEtudiant, MoyenneGenerale
Questionnaire=0
CodeChapitre=0
ReqMoyenneEtudiant= " SELECT Avg(Score.Valeur) AS MoyenneDeValeur, Score.CodeChapitre, Score.NumQuestionnaire, Candidat.NomEtudiant, Candidat.PrenomEtudiant"& _
" FROM Question, Candidat INNER JOIN ((Chapitre INNER JOIN Questionnaire ON (Chapitre.CodeLangue = Questionnaire.CodeLangue) AND (Chapitre.CodeChapitre = Questionnaire.CodeChapitre)) INNER JOIN Score ON (Questionnaire.CodeLangue = Score.CodeLangue) AND (Questionnaire.CodeChapitre = Score.CodeChapitre) AND (Questionnaire.NumQuestionnaire = Score.NumQuestionnaire)) ON Candidat.NumCandidat = Score.NumCandidat"& _
" GROUP BY Score.CodeChapitre, Score.NumQuestionnaire, Score.NumCandidat, Candidat.NomEtudiant, Candidat.PrenomEtudiant"& _
" HAVING (((Score.NumCandidat)=" & numCandidat & " ))"& _
" ORDER BY Score.CodeChapitre, Score.NumQuestionnaire;"
'requête qui donne la moyenne du candidat pour chaque questionnaire répondu
dbArticle.Open(ConnectionString)
rsArticleEtudiant.Open ReqMoyenneEtudiant, dbArticle, 3
nbLignesEtudiant=rsArticleEtudiant.RecordCount
If nbLignesEtudiant=0 then ' si pas d'enregistrement on affiche l'erreur
Response.write("<TABLE width='100%' border=1 cellspacing=0 cellpadding=1>" )
Response.write("<TR><TD> </TD></TR>" )
Response.write("<TR><TD align=center><p class=titreStat><b>VOUS AVEZ AUCUN RESULTAT ENREGISTRE</b></p></TD></TR>" )
Response.write("<TR><TD> </TD></TR>" )
Response.write("</table>" )
rsArticleEtudiant.Close
Set rsArticleEtudiant=Nothing
Set dbArticle=Nothing
Else
nomEtudiant=rsArticleEtudiant("NomEtudiant" )
prenomEtudiant=rsArticleEtudiant("PrenomEtudiant" )
Response.write("<table width='50%' border='1' cellspacing='0' cellpadding='1' align='center' bordercolor=#000000 height='30'><tr><td width='100%'><div align='center'><font size='+2'><br><b>Résultats de " & prenomEtudiant &" " & nomEtudiant & "<br></p></b></div></td></tr></table>" )
Response.write("<TABLE width='100%' border=1 cellspacing=0 cellpadding=1 bordercolor=#000000>" )
Response.write("<p><font size='4'><b>Chapitre: " & rsArticleEtudiant("CodeChapitre" ) & "</b></p>" )
CodeChapitre=rsArticleEtudiant("CodeChapitre" )
compteloop=0 ' pour le cas du premier affichage de la ligne Questionnaire:, votre moyenne, etc...
NMax=10
Ndeb = 0
if request.queryString("compteur" )<>"" then
Ndeb = Cint(request.queryString("compteur" ))
End If
Do while not rsArticleEtudiant.EOF and compteloop<NMax+Ndeb
if compteloop >= Ndeb then
compteloop=compteloop + 1
Questionnaire=rsArticleEtudiant("NumQuestionnaire" )
'ReqMoyenneGenerale= " SELECT Avg(Score.Valeur) AS MoyenneDeValeur, Score.CodeChapitre, Score.NumQuestionnaire"& _
'" FROM Score"& _
'" GROUP BY Score.CodeChapitre, Score.NumQuestionnaire"& _
'" HAVING (((Score.CodeChapitre)='"&CodeChapitre&"' AND ((Score.NumQuestionnaire)="&Questionnaire&" ))"& _
'" ORDER BY Score.CodeChapitre, Score.NumQuestionnaire;"
'rsArticleGenerale.Open ReqMoyenneGenerale, dbArticle, 3
MoyenneEtudiant=rsArticleEtudiant("MoyenneDeValeur" )
'MoyenneGenerale=rsArticleGenerale("MoyenneDeValeur" )
if CodeChapitre=rsArticleEtudiant("CodeChapitre" ) then
if compteloop=1 then
Response.write("<tr><td width='33%' bgcolor=#00CCFF ><div align=center>Questionnaire: </div></td><td width='33%' bgcolor=#00CCFF ><div align=center>Votre Moyenne: </div></td><td width='33%' bgcolor=#00CCFF ><div align=center>Moyenne Générale: </div></td></tr>" )
End if
Response.write("<tr><td width='33%'><div align=center>" & Questionnaire & "</div></td><td width='33%'><div align=center>" & MoyenneEtudiant & "</div></td><td width='33%'><div align=center>""</div></td></tr>" )' & MoyenneGenerale &
Else
Response.write("</table><br><br>" )
CodeChapitre=rsArticleEtudiant("CodeChapitre" )
Response.write("<p><font size='4'><b>Chapitre: " & rsArticleEtudiant("CodeChapitre" ) & "<br><br></b>" )
Response.write("<TABLE width='100%' border=1 cellspacing=0 cellpadding=1 bordercolor=#000000>" )
Response.write("<tr><td width='33%' bgcolor=#00CCFF ><div align=center>Questionnaire: </div></td><td width='33%' bgcolor=#00CCFF><div align=center>Votre Moyenne: </div></td><td width='33%' bgcolor=#00CCFF><div align=center>Moyenne Générale: </div></td></tr>" )
Response.write("<tr><td width='33%'><div align=center>" & Questionnaire & "</div></td><td width='33%'><div align=center>" & MoyenneEtudiant & "</div></td><td width='33%'><div align=center>""</div></td></tr>" )' & MoyenneGenerale &
End If
End If
rsArticleEtudiant.MoveNext
'rsArticleGenerale.Close
Loop
Response.write("</table>" )
End If
%>
<% ' Navigation
' Des fiches avant ?
if Ndeb > 0 then%>
<td>
<A href="?num=<%=numCandidat%>?compteur=<%=Ndeb-Nmax%>">Retour</A>
</td>
<%end if
' Des fiches après ?
if not rsArticleEtudiant.eof then%>
<td>
<A href="?num=<%=numCandidat%>?compteur=<%=compteloop%>">Suite</A>
</td>
<%end if%>
<%rsArticleEtudiant.Close
dbArticle.Close
Set rsArticleEtudiant=Nothing
'Set rsArticleGenerale=Nothing
Set dbArticle=Nothing
Response.write("</table>" )
Response.write("</TABLE></body></html>" )
%>
mais maintenant j'essais une autre manière mais je sens que je vais galérer quand même...
Marsh Posté le 20-01-2003 à 15:06:37
fais un response.write request.queryString("num" ) quand tu mets tes deux valeurs en entrée pour voir ce qu'il y a dedans
Marsh Posté le 20-01-2003 à 15:55:54
j'ai trouvé, c'est une pauvre erreur de newbie .
Je lancé ma page comme ceci historique.asp?num=1?fiche=1
au lieu bien sur de :
historique.asp?num=1&fiche=1
mea culpa, merci d'avoir perdu votre temps avec moi...
Marsh Posté le 20-01-2003 à 16:05:17
nineinch a écrit : j'ai trouvé, c'est une pauvre erreur de newbie . |
je me doutais bien que CT une erreur de ce type lol
Marsh Posté le 17-01-2003 à 15:26:52
j'ai comme erreur quand j'execute une page asp:
Microsoft OLE DB Provider for ODBC Drivers erreur '80040e10'
[Microsoft][Pilote ODBC Microsoft Access]Champ COUNT incorrect
/SiteWeb/Historique avec pagination.asp, ligne 36
Celle ci se produit quand j'execute ma page avec un second paramètre (avec un pas de problème).
si quelqu'un pourrait me dire ce que veut dire cette erreur, cela m'aiderait beaucoup merci.