Erreur ASP/SQL
Résolu
JeepyLeChat
Messages postés
62
Statut
Membre
-
JeepyLeChat Messages postés 62 Statut Membre -
JeepyLeChat Messages postés 62 Statut Membre -
Bonjour,
J'ai actuellement un problème dans le cadre du développement d'un petit site web HTML/ASP. À un certain moment, afin de procéder à la modification de ma base de donnée MySQL pour un enregistrement précis, j'utilise le code suivant:
<%
Nom_Joueur=request.form("Nom_Joueur")
Prenom_Joueur=request.form("Prenom_Joueur")
Date_Naissance=request.form("Date_Naissance")
Telephone=request.form("Telephone")
Email=request.form("Email")
Chaine="select * from tbl_joueurs"
set Req=Conn.execute(Chaine)
Chaine="UPDATE tbl_joueurs SET Nom_Joueur='"+Nom_Joueur+"',Prenom_Joueur='"+Prenom_Joueur+"',Date_Naissance='"+Date_Naissance+"',Telephone='"+Telephone+"',Email='"+Email+"' where No_Joueur='"+Req(0)+"'"
Conn.execute(Chaine)
response.redirect("Joueurs_Admin.asp")
Conn.close
%>
Et lorsque j'accède à cette partie dans le code, j'obtiens l'erreur suivante:
(...)
Erreur d'exécution Microsoft VBScript error '800a000d'
Type incompatible: '[string: "UPDATE tbl_joueurs S"]'
/Save_Joueur.asp, line 15
J'obtiens un erreur sur cette ligne (voir ci bas), sans que je comprenne pourquoi.
Chaine="UPDATE tbl_joueurs SET Nom_Joueur='"+Nom_Joueur+"',Prenom_Joueur='"+Prenom_Joueur+"',Date_Naissance='"+Date_Naissance+"',Telephone='"+Telephone+"',Email='"+Email+"' where No_Joueur='"+Req(0)
(Notez bien: cette insctruction tient sur une seule ligne dans mon code)
Pourtant, cette même insctruction, ou presque (un INSERTau lieu d'un UPDATE) se trouve ailleurs et je n'obtiens pas cette erreur.
Des idées ou suggestions, quelqu'un?
J'ai actuellement un problème dans le cadre du développement d'un petit site web HTML/ASP. À un certain moment, afin de procéder à la modification de ma base de donnée MySQL pour un enregistrement précis, j'utilise le code suivant:
<%
Nom_Joueur=request.form("Nom_Joueur")
Prenom_Joueur=request.form("Prenom_Joueur")
Date_Naissance=request.form("Date_Naissance")
Telephone=request.form("Telephone")
Email=request.form("Email")
Chaine="select * from tbl_joueurs"
set Req=Conn.execute(Chaine)
Chaine="UPDATE tbl_joueurs SET Nom_Joueur='"+Nom_Joueur+"',Prenom_Joueur='"+Prenom_Joueur+"',Date_Naissance='"+Date_Naissance+"',Telephone='"+Telephone+"',Email='"+Email+"' where No_Joueur='"+Req(0)+"'"
Conn.execute(Chaine)
response.redirect("Joueurs_Admin.asp")
Conn.close
%>
Et lorsque j'accède à cette partie dans le code, j'obtiens l'erreur suivante:
(...)
Erreur d'exécution Microsoft VBScript error '800a000d'
Type incompatible: '[string: "UPDATE tbl_joueurs S"]'
/Save_Joueur.asp, line 15
J'obtiens un erreur sur cette ligne (voir ci bas), sans que je comprenne pourquoi.
Chaine="UPDATE tbl_joueurs SET Nom_Joueur='"+Nom_Joueur+"',Prenom_Joueur='"+Prenom_Joueur+"',Date_Naissance='"+Date_Naissance+"',Telephone='"+Telephone+"',Email='"+Email+"' where No_Joueur='"+Req(0)
(Notez bien: cette insctruction tient sur une seule ligne dans mon code)
Pourtant, cette même insctruction, ou presque (un INSERTau lieu d'un UPDATE) se trouve ailleurs et je n'obtiens pas cette erreur.
Des idées ou suggestions, quelqu'un?
A voir également:
- Erreur ASP/SQL
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Instagram connexion impossible erreur inattendue ✓ - Forum Instagram
2 réponses
Bonjour,
J'aurais aimé que tu nous précises quelle est la valeur de Req(0) juste avant l'affectation à Chaine
... et je te propose de couper la ligne qui construit ton update en plusieurs tronçons afin de te faciliter le débogage. Tu aurais pu avoir par exemple :
Chaine="UPDATE tbl_joueurs SET " & _
"Nom_Joueur = '" & Nom_Joueur & "'" & _
", Prenom_Joueur = '" & Prenom_Joueur & "'" & _
", Date_Naissance = '" & Date_Naissance & "'" & _
", Telephone = '" & Telephone & "'" & _
", Email='" & Email & "'" & _
" where No_Joueur = '" & Req(0) & "'"
ou mieux: avec une fonction replace un peu évoluée, c'est certes un chouia plus long, ça ressemble presque à du SQL (avec des apostrophes en plus) mais là ça, devient franchement difficile de se vautrer !
' remplace toutes les occurences de :aParamName par aValue dans aText
function SubstSQLParms(aText, aParamName, aValue)
SubstSQLParms = aText
if trim(aText) <> "" and trim(aParamName) <> "" then _
SubstSQLParms = replace(aText, ":" & aParamName, aValue)
end function
.
.
ca te permet d'avoir
Chaine="UPDATE tbl_joueurs SET " & _
"Nom_Joueur = ':Nom_Joueur', Prenom_Joueur = ':Prenom_Joueur', " & _
"Date_Naissance = ':Date_Naissance', Telephone = ':Telephone', " & _
"Email=':Email' where No_Joueur = ':No_Joueur'"
Chaine = SubstSQLParms(Chaine, "Nom_Joueur", request.form("Nom_Joueur"))
Chaine = SubstSQLParms(Chaine, "Prenom_Joueur", request.form("Prenom_Joueur"))
Chaine = SubstSQLParms(Chaine, "Date_Naissance", request.form("Date_Naissance"))
Chaine = SubstSQLParms(Chaine, "Telephone", request.form("Telephone"))
Chaine = SubstSQLParms(Chaine, "Email", request.form("Email"))
Chaine = SubstSQLParms(Chaine, "No_Joueur", UnNumeroDeJoueurValide)
je te laisse essayer pour voir... garde en tête que ça ne sert qu'à faciliter la lecture & le débogage, rien de plus
J'aurais aimé que tu nous précises quelle est la valeur de Req(0) juste avant l'affectation à Chaine
... et je te propose de couper la ligne qui construit ton update en plusieurs tronçons afin de te faciliter le débogage. Tu aurais pu avoir par exemple :
Chaine="UPDATE tbl_joueurs SET " & _
"Nom_Joueur = '" & Nom_Joueur & "'" & _
", Prenom_Joueur = '" & Prenom_Joueur & "'" & _
", Date_Naissance = '" & Date_Naissance & "'" & _
", Telephone = '" & Telephone & "'" & _
", Email='" & Email & "'" & _
" where No_Joueur = '" & Req(0) & "'"
ou mieux: avec une fonction replace un peu évoluée, c'est certes un chouia plus long, ça ressemble presque à du SQL (avec des apostrophes en plus) mais là ça, devient franchement difficile de se vautrer !
' remplace toutes les occurences de :aParamName par aValue dans aText
function SubstSQLParms(aText, aParamName, aValue)
SubstSQLParms = aText
if trim(aText) <> "" and trim(aParamName) <> "" then _
SubstSQLParms = replace(aText, ":" & aParamName, aValue)
end function
.
.
ca te permet d'avoir
Chaine="UPDATE tbl_joueurs SET " & _
"Nom_Joueur = ':Nom_Joueur', Prenom_Joueur = ':Prenom_Joueur', " & _
"Date_Naissance = ':Date_Naissance', Telephone = ':Telephone', " & _
"Email=':Email' where No_Joueur = ':No_Joueur'"
Chaine = SubstSQLParms(Chaine, "Nom_Joueur", request.form("Nom_Joueur"))
Chaine = SubstSQLParms(Chaine, "Prenom_Joueur", request.form("Prenom_Joueur"))
Chaine = SubstSQLParms(Chaine, "Date_Naissance", request.form("Date_Naissance"))
Chaine = SubstSQLParms(Chaine, "Telephone", request.form("Telephone"))
Chaine = SubstSQLParms(Chaine, "Email", request.form("Email"))
Chaine = SubstSQLParms(Chaine, "No_Joueur", UnNumeroDeJoueurValide)
je te laisse essayer pour voir... garde en tête que ça ne sert qu'à faciliter la lecture & le débogage, rien de plus
Je suis plus habitué à développer des applications C++, alors tomber dans une situation où on ne peut pas débugger pendant l'exécution m'a posé problème.
Dès que je reprends le travail, je vais faire cela, et je reposterai si je n'arrive toujours pas a isoler le problème.
Merci beaucoup, et bonne journée/soirée!
JeepyLeChat