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 16/11/2006, 12h25   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 14
Points : 4
Points : 4
Par défaut Problème avec "update" du code ASP

J'ai un problème de "update" avec une base (qui contient une table client avec les champs "pol" et "nom" de type texte les deux)que j'ai créé sous access 2002 avec service web IIS sous windows XP SP2, voila 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
----------------------------------------------------------------
<%
on error resume next
c1 = request.form("txt_pol")
c2 = request.form("txt_nom")
set Conn = server.createObject("ADODB.Connection")
Conn.provider = "Microsoft.jet.OLEDB.4.0"
Conn.connectionString = "Data Source=" & server.mappath("base.mdb") & ";Persist Security Info=False"
conn.open
Set rs=server.createObject ("ADODB.recordset")
my_sql = "Update client set nom = '" & c2 & "' where pol = '" & c1 & "'"
rs.open my_sql,conn,2,2
rs.close
set rs=nothing
Conn.close
Set conn=nothing
%>
----------------------------------------------------------------------
puis j'ai essayer avec ce code:
---------------------------------------------------------------------
<%
on error resume next
c1 = request.form("txt_pol")
c2 = request.form("txt_nom")
set Conn = server.createObject("ADODB.Connection")
Conn.provider = "Microsoft.jet.OLEDB.4.0"
Conn.connectionString = "Data Source=" & server.mappath("base.mdb") & ";Persist Security Info=False"
conn.open
Set rs=server.createObject ("ADODB.recordset")
my_sql = "Update client set nom = '" & c2 & "' where pol = '" & c1 & "'"
 
Conn.Execute my_sql
 
rs.close
set rs=nothing
Conn.close
Set conn=nothing
%>
----------------------------------------------------------------------
puis avec ce code :
-----------------------------------------------------------------------
<%
on error resume next
c1 = request.form("txt_pol")
c2 = request.form("txt_nom")
set Conn = server.createObject("ADODB.Connection")
Conn.provider = "Microsoft.jet.OLEDB.4.0"
Conn.connectionString = "Data Source=" & server.mappath("base.mdb") & ";Persist Security Info=False"
conn.open
Set rs=server.createObject ("ADODB.recordset")
rs.Open "client", conn, 1, 2 ,2
rs.fields("pol")=c1
rs.fields("nom")=c2
rs.update
rs.close
set rs=nothing
Conn.close
Set conn=nothing
%>
-----------------------------------------------------------------------
et toujours je reçois le message :
Citation:
Erreur N°: -2147467259 L'opération doit utiliser une requête qui peut être mise à jour.
Veuillez m'aider c'est urgent
Merci
ocean_prince11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 12h42   #2
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

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

Avant de faire le Execute, affiche ta requête et dis nous ce qu'elle contient :

Code :
1
2
 
response.write(my_sql)
__________________
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 16/11/2006, 16h03   #3
Invité de passage
 
Inscription : novembre 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 14
Points : 4
Points : 4
D'abord je m'excuse pour le mot urgent mais parce c'est un travail demandé par le directeur et les directeurs ne n'aiment pas entendre "il y a un problème!!??" ou "ça ne marche pas!!??"

Bon, j'ai fait ce que vous m'avez demandé et j'ai reçu comme résultat :

Update client set nom = 'jean jacke' where pol = '333333'

et toujours aucune modification sur la base .
ocean_prince11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 17h15   #4
Membre émérite
 
Avatar de marabout
 
Homme
Consultant E-Learning
Inscription : août 2006
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Consultant E-Learning

Informations forums :
Inscription : août 2006
Messages : 646
Points : 812
Points : 812
Es-tu certain de tes types de données ? Je m'inquiète essentiellement pour ton champ "pol"
marabout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 19h10   #5
Invité de passage
 
Inscription : novembre 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 14
Points : 4
Points : 4
"pol" signifie "police" qui est de type texte taille 7, en principe c'est un petit exemple de deux champs mais la vraie base où je vais travailler contient au moins 8 champs avec 90000 enregistrement au moins.
le problème c'est que ni l'ajout ni la modification fonctionnent, en plus j'ai essayer une autre application sur le web avec base donnée marathon2000.mdb sur cette adresse :
http://www.asp-irine.com/rubriques/r...rathon2000.zip
et c'est toujours le même problème, seule la consultation qui fonctionne...
Et j'ai essayer l'application sur 3 postes (avec windows xp SP1 ou Sp2) et c'est toujours la même chose...
voilà le message d'erreur :

Erreur de compilation Microsoft VBScript error '800a0401'

Fin d'instruction attendue

/iisHelp/common/500-100.asp, line 11

Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Pilote ODBC Microsoft Access] L'opération doit utiliser une requête qui peut être mise à jour.

/enregistrer_modification.asp, line 12



que dois-je faire??
ocean_prince11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 22h12   #6
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,

Pour la chaine de connection, je regarderai ici http://www.carlprothman.net/Default....riverForAccess

Pour une simple requete UPDATE, il est inutile d'ouvrir de recordset. Une commande suffit.
Si tu utilise un recordset, il faut faire
Code :
rs.open sql, strProvider, 1, 3
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 08h52   #7
Membre émérite
 
Avatar de marabout
 
Homme
Consultant E-Learning
Inscription : août 2006
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Consultant E-Learning

Informations forums :
Inscription : août 2006
Messages : 646
Points : 812
Points : 812
Citation:
Envoyé par ocean_prince11
Erreur de compilation Microsoft VBScript error '800a0401'

Fin d'instruction attendue

/iisHelp/common/500-100.asp, line 11

Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Pilote ODBC Microsoft Access] L'opération doit utiliser une requête qui peut être mise à jour.

/enregistrer_modification.asp, line 12


Pour ton erreur à la ligne 11, un simple passage à la ligne après strRemoteIP devrait faire l'affaire.

Pour le reste, essaye de lancer ta requête (telle que tu la récupère par l'instruction Response.Write) directement dans ta base de données. Il semblerait qu'il y ait un problème dans la formulation de la requête par rapport aux tables par exemple
marabout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 10h17   #8
Invité de passage
 
Inscription : novembre 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 14
Points : 4
Points : 4
Toujours je reçois le message d'erreur avec toutes les possibilités que j'ai fait.
Si quelqu'un a un petit exemple d'ajout et modification (avec une base de donnès access) déjà testé et marche surtout sur Win XP pro, ça serai gentil de m'aider à le tester sur mon poste de travail pour savoir si le problème est au niveau de code ou de machine..
Et merci à tous pour votre aide..
ocean_prince11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 10h34   #9
Membre émérite
 
Avatar de marabout
 
Homme
Consultant E-Learning
Inscription : août 2006
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Consultant E-Learning

Informations forums :
Inscription : août 2006
Messages : 646
Points : 812
Points : 812
As-tu testé ta requête directement sur Access (sans passer par le code asp, comme je le disait dans un post précédent, tu fait un Response.write de ta requête puis un copy, tu vas dans access, tu crées une nouvelle requête, tu vas dans le code SQL et tu fais un paste) ?
marabout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 17h23   #10
Invité de passage
 
Inscription : novembre 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 14
Points : 4
Points : 4
J'ai testé la requête SQL sous Access avec "update" et "insert" et elle marche trés bien, puis j'ai consulté ma base avec ASP et j'ai trouvé les valeurs modifiées avec "update" ou ajoutées avec "insert".
Donc au niveau de la base ça marche trés bien mais quand je passe par asp, je me trouve en façe du message d'erreur #
ocean_prince11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 19h52   #11
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
Tu as fait des tests sur ce que je t'ai dit?
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2006, 13h47   #12
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Par défaut Test

Essaye de récuperé tes valeurs avant de faire le On error resume next il est possible que cela fonctionne
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2006, 14h24   #13
Membre éprouvé
 
Avatar de totoche
 
Inscription : janvier 2004
Messages : 1 071
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 1 071
Points : 478
Points : 478
Bonjour,
Je pense que ton erreur provient d'une mauvaise gestion des droits sur le dossier qui contient ta base de données.
click droit sur le dossier
-onglet propriété
Vérifie les param lecture & écriture des autorisations.

tiens nous au courant.
@+
__________________
La patience est un arbre aux racines amères, mais aux fruits ci-doux.
totoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 18h50   #14
Invité de passage
 
Inscription : novembre 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 14
Points : 4
Points : 4
Je m'excuse pour me retarder à vous écrire mais j'avais vraiment un empêchement.
Génial, l'ajout et la modification sont enfin en marche, le problème était dans le paramètrage des droits d'accès.
Je vous remercie du fond de mon coeur pour votre aide et j'espère moi aussi être utile pour ce forum.
ocean_prince11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 18h56   #15
Membre éprouvé
 
Avatar de totoche
 
Inscription : janvier 2004
Messages : 1 071
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 1 071
Points : 478
Points : 478
alors
__________________
La patience est un arbre aux racines amères, mais aux fruits ci-doux.
totoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h25.


 
 
 
 
Partenaires

Hébergement Web