IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Problème avec "update" du code ASP


Sujet :

ASP

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 8
    Points
    8
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Erreur N°: -2147467259 L'opération doit utiliser une requête qui peut être mise à jour.
    Veuillez m'aider c'est urgent
    Merci

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.write(my_sql)

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    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 .

  4. #4
    Membre éclairé
    Avatar de marabout
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2006
    Messages : 650
    Points : 852
    Points
    852
    Par défaut
    Es-tu certain de tes types de données ? Je m'inquiète essentiellement pour ton champ "pol"

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    "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??

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.open sql, strProvider, 1, 3
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre éclairé
    Avatar de marabout
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2006
    Messages : 650
    Points : 852
    Points
    852
    Par défaut
    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

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    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..

  9. #9
    Membre éclairé
    Avatar de marabout
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2006
    Messages : 650
    Points : 852
    Points
    852
    Par défaut
    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) ?

  10. #10
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    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 #

  11. #11
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Tu as fait des tests sur ce que je t'ai dit?
    "Winter is coming" (ma nouvelle page d'accueil)

  12. #12
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut Test
    Essaye de récuperé tes valeurs avant de faire le On error resume next il est possible que cela fonctionne
    Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

    FAQ ASP

  13. #13
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    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.

  14. #14
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    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.

  15. #15
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    alors
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

Discussions similaires

  1. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 12h45
  2. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  3. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo