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 08/08/2006, 11h23   #1
Invité régulier
 
Inscription : juin 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 22
Points : 6
Points : 6
Par défaut Close d'un recordset apres un delete

Bonjour à tous,
J'ai une erreur que je ne comprends pas lorsque je fais un delete en base de données

je fais ceci
Code :
1
2
3
4
5
6
7
sqlStr = "DELETE FROM USAGE WHERE ID_BIEN IN";
                 sqlStr += "(SELECT ID_BIEN FROM BIEN WHERE ID_UF = '" + id +"')";
                 Response.Write("<br>" + sqlStr);
	             oRS.Open (sqlStr, oCon,1,2);
 
	             Response.Write("<br>usages supprimés");
	             oRS.Close();
et j'ai l'erreur
Citation:
impossible d'effectuer l'opération lorsque l'objet est fermé
pourtant il me fait bien le delete en BDD, et lorsque j'enleve le oRS.Close(); il n'y a pas de probleme... Je trouve ca bizarre vu qu'on m'a toujours dit de fermer un recordset apres l'avoir ouvert... Donc j'ai peur qu'au bout d'un moment avec cette méthode j'ai un trop grand nombre de recordsets ouverts..
ou alors peut etre que le fait de faire un delete ferme automatiquement le recordset ?
Quelqu'un pourrait t'il m'eclairer ?

Merci beaucoup
tibtibby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 11h41   #2
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
je pense que tu dois avoir une autre requete précédemment de celle ci, et cela pose un probleme, ou une fin de parenthese lors d'une boucle...

colle nous ton code entier
Joe Le Mort est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 11h46   #3
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
Bonjour,

Pour un delete, tu devrais faire un Execute plutôt qu'un Open.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 11h52   #4
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
Citation:
Envoyé par pc75
Bonjour,

Pour un delete, tu devrais faire un Execute plutôt qu'un Open.
SQL="DELETE * FROM xxxxxxx" _
& " WHERE xxxxxx"
conn.Execute(SQL)
Joe Le Mort est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 12h23   #5
Invité régulier
 
Inscription : juin 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 22
Points : 6
Points : 6
Citation:
Envoyé par Joe Le Mort
je pense que tu dois avoir une autre requete précédemment de celle ci, et cela pose un probleme, ou une fin de parenthese lors d'une boucle...

colle nous ton code entier

c'est ma 1ere requete ... et le open marche bien donc je ne comprends pas pourquoi le close marcherait pas

voici le 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
<%@ Language = JavaScript %>
 
 
<html>
 
    <head>
 
 
    </head>
 
    <body>
    <script language=JavaScript>
        alert(document.location);
    </script>
    <%
        var id = Request("id");
        var type = Request("type");
        var motif = Request("motif");
 
 
        //Parametres de connexion a la BDD
        var strBDName = Session ("database");
	    var strBDLogin = Session ("User");
	    var strBDPwd = Session ("Password");	
 
	    var oRS = Server.CreateObject ("ADODB.RecordSet"); 
	    var oCon = Server.CreateObject ("ADODB.Connection");
 
	    var sqlStr;
 
 
        if (type == "uf")
        {
 
	        oCon.Open (strBDName,strBDLogin,strBDPwd);
 
 
            try
	         {
	             //Suppression des usages liés à l'uf
	             sqlStr = "DELETE FROM USAGE WHERE ID_BIEN IN";
                 sqlStr += "(SELECT ID_BIEN FROM BIEN WHERE ID_UF = '" + id +"')";
 
	             oRS.Open (sqlStr, oCon,1,2);
	             Response.Write("<br>usages liés à l'uf supprimés");
	             //oRS.Close();   
 
	             //Suppression des usages liés aux batiments
	             sqlStr = "DELETE FROM GEOPAT_UNITE_USAGE WHERE ID_BIEN IN";
	             sqlStr += "(SELECT ID_BATI FROM GEOPAT_BATI WHERE ID_UF = '" + id +"')";
 
	             oRS.Open (sqlStr, oCon, 1, 2);
	             //oRS.Close();   
	             Response.Write("<br>usages liés aux batiments supprimés");
 
 
	         }
	        catch(e)
	        {
	            Response.Write("<br>Erreur pendant la suppression : " + e.number + " - " + e.description);   
	            Response.End();
	        }
	        oCon.Close();
	    }//  if (type == "uf")
     %>
 
    </body>
 
</html>
tibtibby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 12h28   #6
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
Re,

Je dois être fatigué, mais ton code me perturbe (pour de l'ASP) !
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 13h45   #7
Invité régulier
 
Inscription : juin 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 22
Points : 6
Points : 6
oui, c'est une page asp mais avec du code javascript ....
ne m'en voulez pas je ne fait que reprendre le code de quelqu'un avant moi qui a fait toutes ses pages selon ce modele
tibtibby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 14h05   #8
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
Re,

Et as-tu essayé d'utiliser la méthode Execute (qui ne nécessite pas de fermeture) au lieu de la méthode Open ?
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 15h05   #9
Invité régulier
 
Inscription : juin 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 22
Points : 6
Points : 6
Citation:
Envoyé par pc75
Re,

Et as-tu essayé d'utiliser la méthode Execute (qui ne nécessite pas de fermeture) au lieu de la méthode Open ?

Tu viens de m'y refaire penser et ca marche
sauf que dans mon cas en tout cas ce n'est pas "delete * from xxxx where ..." mais "delete from xxx where ..."

Merci beaucoup pour vos réponses
tibtibby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 15h28   #10
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
Citation:
Envoyé par tibtibby
sauf que dans mon cas en tout cas ce n'est pas "delete * from xxxx where ..." mais "delete from xxx where ..."
ouais je sais, j'a irepris ca sur un site pour te montrer le Execute
C'es tclair qu'il y a une grosse erreur m'en vais leur dire
Joe Le Mort 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 00h21.


 
 
 
 
Partenaires

Hébergement Web