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 14/11/2007, 14h36   #1
Invité régulier
 
Inscription : juin 2002
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 14
Points : 6
Points : 6
Envoyer un message via AIM à gloppy
Par défaut manque enregistrement dans request

Bonjour tlm,

J'ai une requete qui ne me donne pas la reponse attendu et je ne comprends pas pourquoi. Je m'explique:

dans ma page asp j'ajoute 2 ou 4 enregistrements a une table de ma base access. Juste apres cette etape et dans la meme page je demande l'affichage de ces enregistrements dans un tableau. Etrangement le dernier enregistrement n'apparait pas que j'en ai rajouté 2 ou 4 c'est toujours le dernier. Je ne comprends pas pourquoi. Est ce que quelqu'un a une ID?
je mets une partie de mon code:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
<%  While NOT Recordset5.EOF%>
<%
   IdT=recordset5.Fields.item("Id_TypVac").value
   AU=0
   SU=0
 
   Set Recordset4 = Server.CreateObject("ADODB.Recordset")
   Recordset4.ActiveConnection = MM_conn1_STRING
   Recordset4.Source = "INSERT INTO Vacation (Date_Vac,Pt_TypVac_Vac,Nb_Lib_AU_Vac,Nb_Lib_SU_Vac) VALUES ('"&dtFerm2&"',"&IdT&","&AU&","&SU&")"
   Recordset4.CursorType = 0
   Recordset4.CursorLocation = 2
   Recordset4.LockType = 1
   Recordset4.Open()
 
   recordset5.movenext()
  wend
%>
<%
 Recordset5.Close()
 Set Recordset5 = Nothing
%>
<%  
  Set Recordset6 = Server.CreateObject("ADODB.Recordset")
  Recordset6.ActiveConnection = MM_conn1_STRING
  Recordset6.Source = "SELECT Id_Vac FROM Vacation WHERE Date_Vac='"&dtFerm2&"'"
  Recordset6.CursorType = 0
  Recordset6.CursorLocation = 2
  Recordset6.LockType = 1
  Recordset6.Open()
  Recordset6_numRows = 0%>
 
<table border="1">
  <tr> 
    <td>Id_Vac</td>
  </tr>
  <% While ((Repeat1__numRows <> 0) AND (NOT Recordset6.EOF)) %>
  <tr> 
    <td><%=(Recordset6.Fields.Item("Id_Vac").Value)%></td>
  </tr>
  <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Recordset6.MoveNext()
Wend
%>
</table>
Ca fait un moment que je suis sur leprobleme et je trouve pas... Help please!
gloppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 13h15   #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,

Essayes en remplaçant ta boucle d'insersion par ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 <%
Set cm = Server.CreateObject("ADODB.command")
cm.ActiveConnection = MM_conn1_STRING
While NOT Recordset5.EOF
 
    IdT = recordset5.Fields.item("Id_TypVac").value
    AU=0
    SU=0
 
    cm.CommandText = "INSERT INTO Vacation (Date_Vac,Pt_TypVac_Vac,Nb_Lib_AU_Vac,Nb_Lib_SU_Vac) VALUES ('"&dtFerm2&"',"&IdT&","&AU&","&SU&")"
    cm.Execute
 
    recordset5.movenext()
wend
Set cm = nothing
%>
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 15h04   #3
Invité régulier
 
Inscription : juin 2002
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 14
Points : 6
Points : 6
Envoyer un message via AIM à gloppy
Merci !!!

Par contre est ce que tu peux m'expliquer pourquoi l'autre methode ne fonctionnait pas?

Enfin l'essentiel c'est que mon pb est enfin resolut!
Merci encore!
gloppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 22h43   #4
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
Un recorset execute une requete SQL. Toutefois il est logiquement utilisé pour rapatrier des donées de la base (SELECT ... FROM ... WHERE). Dans le cas d'une insertion, suppression ou mise à jour, il n'est pas forcement necessaire de recevoir une réponse de la base de donnée.
C'est pourquoi, une commande est plus appropriée.
Je n'ai pas essayé, mais ta solution pourrais peut-être marcher si tu cloturais le recordset.
Code :
1
2
3
4
5
6
7
   Recordset4.ActiveConnection = MM_conn1_STRING
   Recordset4.Source = "INSERT INTO Vacation (Date_Vac,Pt_TypVac_Vac,Nb_Lib_AU_Vac,Nb_Lib_SU_Vac) VALUES ('"&dtFerm2&"',"&IdT&","&AU&","&SU&")"
   Recordset4.CursorType = 0
   Recordset4.CursorLocation = 2
   Recordset4.LockType = 1
   Recordset4.Open()
   Recordset4.Close
A tester pour savoir mais à ne pas utiliser de préférence.
Pour ta culture, il existe des methodes specifique pour mettre à jour des données à partir de recordset: recordset.addnew et recordset.update. Mais le mieux reste l'utilisation des commandes.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web