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&" ))"& _
 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.