[asp]Probleme d'update d'une table !!help

Probleme d'update d'une table !!help [asp] - ASP - Programmation

Marsh Posté le 04-06-2003 à 19:57:09    

Salut :hello:
 
Voila j'ai un petit PB en asp
je propose sur un site (que je veins juste de commencer) , a l'administrateur de changer son identifiant et son mot de pass ( ses parametre de login koi)
 
g crée une formulaire qui contient le nouvelle identifiant (new_id) et le nouveau pass (new_pass)
ce formulaire a pour action mon fichier login.asp , avec la method post
 
voila un bout de mon fichier login.asp:
 
voici comment je connecte ma base de donnée:
<%  
 set cnx=Server.createObject("ADODB.connection" )
 cnx.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\InetPub\wwwroot\Apsurf97.mdb"
%>
 
ma table s'appelle login , elle contient 2 colonne: identifiant et pass et une seul ligne
 
ma requete:
 
<% req=" update login
       set identifiant=request.form("new_id" ) ,   pass=request.form("new_pass" )"
 
         Set RS=cnx.execute (Req) %>      
 
ensuite , qd je test g une erreur au niveau de la ligne en gras ( sorry je peux pas mettre axcatement l'erreur car le code se trouve sur un ordi dans la boite ou je fais mon stage, je mettrais l'erreur detailé demain)        
 
je precise que je debute , donc patapai :d
 
merci


Message édité par Zobman le 04-06-2003 à 19:59:11

---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Marsh Posté le 04-06-2003 à 19:57:09   

Reply

Marsh Posté le 05-06-2003 à 00:28:06    

<% req="update login
       set identifiant='" & request.form("new_id" ) & "',pass='" & request.form("new_pass" ) & "'"
          Set RS=cnx.execute (Req) %>
 
essaye comme ca

Reply

Marsh Posté le 05-06-2003 à 06:01:27    

ok merci
je vais tester ce matin et je te dirais
@+


---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Marsh Posté le 05-06-2003 à 09:55:02    

bon je viens de passer 3 heure a me prendre la tete avec cette putain de requete qui veux pas marcher!
g eu bo aller fouinner dans tous les site , j'ai recopier mot pour mot (en changeant ce k'il fallais bien sur) et ça marche toujours pas!
voila ce que g essayer et voila les erreur:

requete1:

 
<%  req=" UPDATE login SET identifiant='"&new_id&"' , pass='"&new_pass&"' "
       
 
  set rs=cnx.execute(req) %>

 
et voici l'erreur:
 

Citation :

[quote]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 JET Database Engine error '80004005'  
 
L'opération doit utiliser une requête qui peut être mise à jour.  
 
/modif_login2.asp, line 21


 
requete2:
 
<%
Set rs=server.createObject ("ADODB.recordset" )
sql="select * FROM login'"
rs.Open sql, conn, 2,3  
rs.fields("identifiant" )=new_id
rs.fields("pass" )=new_pass
rs.update
rs.close
%>

 
voici l'erreur:
 

Citation :

[quote]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
--------------------------------------------------------------------------^
ADODB.Recordset error '800a0bb9'  
 
Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres.  
 
/modif_login2.asp, line 26


 
 
voila , j'avais encore reussi a avoir une autre erreur avec une requete sql qui pour moi tenais la route mais j'arrive pu a la retrouver
si qq1 a la soluce???
MERCI
BYE


---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Marsh Posté le 05-06-2003 à 11:14:09    

1) Première erreur pas tragique, tes déclarations de variables : je sais pas comment se font les retours à la ligne dans ton code, mais fais gaffe que
- les variables soient séparées par des ,
- chaque ligne commence par "Dim"
 
(d'après le message d'erreur, ya une couille déjà à ce niveau)
 
2) je prends ta 2ème requête
 
tu veux modifier après avoir demandé
"SELECT * FROM login"
 
Ce qui te donne toutes les lignes de la table login.
 
Comment veux-tu que ton pauvre code devine la ligne qu'il doit modifier ?
 
Tu fais un "SELECT * FROM login" sans rien d'autre pour un ajout, pas pour un UPDATE
 
Solution : tu récupères d'abord l'ancien id (ou n'importe quel champ de la ligne en question), ensuite tu fais
 
"SELECT * FROM login WHERE id="&ancien_id
puis tu mets le code que tu avais.
 
(Si tu veux utiliser la première méthode c'est pareil dans l'esprit : "UPDATE zz SET xx="", yy="" WHERE xx="&ancien_id&"" )
 
C'est un peu plus logique ;)


Message édité par deliriumtremens le 05-06-2003 à 11:15:27
Reply

Marsh Posté le 05-06-2003 à 11:42:37    

je n'ai pas declaré mes variable avec Dim car je l'ai jamsi fais et y jamais eu de pb , mais bon si tu di que c  peut etre ça , je vais le faire
ensuite , je me suit permis de faire un select from * car la table ne contient et ne contiendra tjs  k'une seul ligne , je m'etais di que c t pas la peine
je me servirai des cookies alors
merci encore je vais voir si tous ça marche
@+


---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Marsh Posté le 05-06-2003 à 11:57:04    

Ouais ben en fait l'erreur sur les Dim se produit dans un des fichiers d'aide d'IIS. Autant pour moi, tu n'y es vraisemblablement pour rien.
 
Concernant l'autre point, s'il n'y a qu'une seule ligne, est-ce que ça vaut vraiment la peine de faire une table exprès ?
 
Autant faire ça sans bdd, non ?

Reply

Marsh Posté le 05-06-2003 à 13:10:50    

ben en fait , je veux bien le faire sans bbd mais comment modifier les parametre de login ulterieurement alors?
la je viens de reessayer mes requete et ça marche po
1)g bo declaré les variable (<% dim...%> ) l'erreur des variable est tjs la
2) g precise quel ligne selectionner dans mes requete et tjs le meme message d'erreur
 
si t'as une autre idée je suis preneur
 
merci


---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Marsh Posté le 05-06-2003 à 14:04:40    

bon voila , j'ai reussi a retrouver mon autre requete qui me produit encore une NOUVELLE erreur
 
je met tout de code car peut  etre que le pb viens de plus haut:
 

Citation :

<html>
 
<%  'connextion a la base de donnée
 set cnx=Server.createObject("ADODB.connection" )
 cnx.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\InetPub\wwwroot\3asite.mdb"
 new_id=request.form("new_id" )' recuperation du nouveau identifiant
 new_pass=request.form("new_pass" ) 'idem pour le nouveau pass
 old_id=request.cookies("id" )'reucperation de l'ancien identifiant
 
%>
 
 
 
<head>
title>MOFICATION LOGIN2</TITLE></head>
<body>
 
 
<% 'mis a jour de la base de donnée , on remplace l'ancien identifiant et pass par les nouveaux  
 
   
SQL = "UPDATE login SET identifiant='"&new_id&"' , pass='"&new_pass&"'  WHERE identifiant='"&old_id&"'"
conn.Execute(SQL)
 
conn.close : Set conn=nothing

 
 
%>
</BODY>
</HTML>


 
et voici l'erreur :
 

Citation :

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
--------------------------------------------------------------------------^
Erreur d'exécution Microsoft VBScript error '800a01a8'  
 
Objet requis: ''  
 
/modif_login2.asp, line 28


Message édité par Zobman le 05-06-2003 à 14:06:52

---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Marsh Posté le 05-06-2003 à 15:41:18    

bon je viens qd meme de passer une journée entiere sur ce probleme de merde!
du coup si qq1 aurrais une autre solution a me proposer pour gerer les parametre de login (id et pass)  , il est le bienvenue  
meme si ça me fais grave chié de pas arrivé a mettre a jour une pauvre petite table!
mais apparement , a ce que g pu voir sur le net , l'erreur "

Citation :

[quote]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
--------------------------------------------------------------------------^
Erreur d'exécution Microsoft VBScript error '800a01a8'  
 
Objet requis: ''  
 
/modif_login2.asp, line 30


 
est tres recurente , du moins la premiere , et viendrais d'un probleme interne de IIS
 
 


---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Marsh Posté le 05-06-2003 à 15:41:18   

Reply

Marsh Posté le 05-06-2003 à 16:05:57    

Pour éliminer la première erreur
 
Tu vas dans  
 
Panneau de conf->outils d'administration->Gestionnaire des sites Internet
 
Là, tu développes "Site Web par défaut"->IISHelp->Common
 
Tu ouvres "500-100.asp"  
 
Tu vas sur la ligne avec les Dim et tu fais un retour chariot avant le 2ème Dim
 
Ca devrait éliminer l'erreur.
 
Pour la suite, i'll be back, Coffe and cigs time.

Reply

Marsh Posté le 05-06-2003 à 16:41:07    

lol
je viens de rentré ché moi
je test ça sur mon pc
et au miralce ça marche!!!
nikel aucun pb
 
en plus avec ce bout de code ( cad sans where identifiant=old_id)
 

Citation :

<html>
 
<%  'connextion a la base de donnée
 set cnx=Server.createObject("ADODB.connection" )
 cnx.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\InetPub\wwwroot\3asite.mdb"
 new_id=request.form("new_id" )' recuperation du nouveau identifiant
 new_pass=request.form("new_pass" ) 'idem pour le nouveau pass
         
%>
 
 
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>MOFICATION LOGIN2</TITLE></head>
<body>
 
<%  'mis a jour de la base de donnée , on remplace l'ancien identifiant et pass par les nouveaux  
 
   req=" UPDATE login SET identifiant='"&new_id&"' , pass='"&new_pass&"'"
       
 
  set rs=cnx.execute(req)  
 
                                                                                                 
'fermeture de la connection à la base de donnée
    cnx.close %>
</BODY>
</HTML>  


 
fo que je trouve now c koi le pb a la boite
je testerai demain le retour chariot
merci encore


---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed