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 15/05/2008, 10h12   #1
Membre confirmé
 
Avatar de jamesleouf
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2005
Messages : 513
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 513
Points : 215
Points : 215
Par défaut [Debutant] Insert en ASP

Re-Bonjour,

Juste une question, lorsque l'on fait un insert en ASP

Code :
1
2
3
4
 
Requete_insert= "Insert into Machin(Truc, Truc1) values ('"bla bla bla );"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open requete_insert, Con
Peut on mettre : rs.close juste après?

Merci beaucoup
__________________
James PaBond
http://www.greenquizz.com/
jamesleouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 10h39   #2
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 242
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 242
Points : 1 049
Points : 1 049
Citation:
Envoyé par jamesleouf Voir le message
Re-Bonjour,

Juste une question, lorsque l'on fait un insert en ASP

Code :
1
2
3
4
 
Requete_insert= "Insert into Machin(Truc, Truc1) values ('"bla bla bla );"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open requete_insert, Con
Peut on mettre : rs.close juste après?

Merci beaucoup
Salut,

Tu peux mais alors tu ferme la source de tes données.

Moi je le fais (rs.close) pour l'ouvrir à nouveau avec des nouveaux paramètres.

Code :
1
2
rst.close
rst.open "Historique", cnn, 2, 3
De toute façon, à la fin de ton traitement, il est conseillé de fermer.

@ bientôt
beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 10h42   #3
Membre confirmé
 
Avatar de jamesleouf
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2005
Messages : 513
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 513
Points : 215
Points : 215
oui mais donc ca veut dire qu'a la ligne :
rs.Open requete_insert, Con

l'insert à été fait et donc que je peux fermer c'était ca ma question en fait.
Merci beaucoup
__________________
James PaBond
http://www.greenquizz.com/
jamesleouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 10h56   #4
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 242
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 242
Points : 1 049
Points : 1 049
Citation:
Envoyé par jamesleouf Voir le message
oui mais donc ca veut dire qu'a la ligne :
rs.Open requete_insert, Con

l'insert à été fait et donc que je peux fermer c'était ca ma question en fait.
Merci beaucoup

à mon avis tu peux si tu n'as plus rien à insérer.

Demande un second avis, ça vaut mieux
beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 12h54   #5
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Bonjour,

J'ajouterai après le rs.close :

Code :
1
2
3
4
 
...
rs.close
Set rs = Nothing
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 13h05   #6
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 859
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 859
Points : 5 979
Points : 5 979
Salut,

S'agissant d'une insertion ou d'une mise à jour, si on ne récupère aucun résultat (ni même le nb de lignes affectées), j'utiliserais un objet "command" (ADODB.Command).

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 14h25   #7
Membre confirmé
 
Avatar de jamesleouf
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2005
Messages : 513
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 513
Points : 215
Points : 215
je ne comprend pas bien pourquoi il faudrait faire tout ca...
normalement apres avoir fait:

rs.Open requete_insert, Con

l'insert/update ou delete devrait deja etre fait... je ne comrpends pas pourquoi un simple close ne ferait pas l'affaire.
Au pire, comme c'est dans une boucle le rs est recrée... non?
__________________
James PaBond
http://www.greenquizz.com/
jamesleouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 21h09   #8
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 859
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 859
Points : 5 979
Points : 5 979
Citation:
je ne comprend pas bien pourquoi il faudrait faire tout ca...
Tout ça quoi?
En développement, c'est en général le plus feinéant qui a raison.
Si tu fais:
Code :
1
2
3
4
5
6
7
 
Set cn = Server.create("ADODB.Connection")
cn.Open "chaine de connexion"
Set rs = server.create("Adodb.recordset")
   rs.open ...
   rs.close
Set rs = Nothing
Cela veut dire que tu récupères un recordset (tu fais remonter des données du serveur sql à IIS). Autrement dit tu donnes un ordre au serveur sql, qui te répond et que tu écoutes. Tout cela alors que tu n'en as pas besoin.
Le plus simple comme tu dis, et selon moi, c'est de donner un ordre et de n'écouter la réponse que si il y a un pb. Sinon, on s'en fiche.
Donc de faire:
Code :
1
2
3
4
5
6
7
8
Set cn = Server.create("ADODB.Connection")
cn.Open "chaine de connexion"
Set cmd = server.create("ADODB.Command")
cmd.ActiveConnection = cn
cmd.CommandText = "UPDATE TOTO ..."
cmd.execute()
cmd.CommandText = "UPDATE TATA ..."
cmd.execute()
http://www.w3schools.com/ADO/met_comm_execute.asp
D'autant qu'il existe une methode Update et AddNew pour les recordset. Mais je ne la trouve pas fiable.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2008, 14h39   #9
Membre confirmé
 
Avatar de jamesleouf
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2005
Messages : 513
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 513
Points : 215
Points : 215
En fait ma question était :
pourquoi rs = nothing?

Merci des renseignements
__________________
James PaBond
http://www.greenquizz.com/
jamesleouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2008, 15h05   #10
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Citation:
Envoyé par jamesleouf Voir le message
En fait ma question était :
pourquoi rs = nothing?

Merci des renseignements
Quand tu fais set rs = server.createobject("ADODB.Recodset"), tu crées une instance en mémoire.

le nothing détruit cette instance.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 10h02   #11
Membre confirmé
 
Avatar de jamesleouf
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2005
Messages : 513
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 513
Points : 215
Points : 215
Dans ce cas, à quoi sert le close?
__________________
James PaBond
http://www.greenquizz.com/
jamesleouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 22h41   #12
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Salut,

Le close ferme la connexion à la base.
Le nothing libère l'instance, donc libère de l'espace dans la mémoire cache.
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 10h29   #13
Membre confirmé
 
Avatar de jamesleouf
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2005
Messages : 513
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 513
Points : 215
Points : 215
Merci beaucoup tekp@f
__________________
James PaBond
http://www.greenquizz.com/
jamesleouf 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 16h53.


 
 
 
 
Partenaires

Hébergement Web