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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    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
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    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
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    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 émérite
    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
    Par défaut
    Es-tu certain de tes types de données ? Je m'inquiète essentiellement pour ton champ "pol"

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    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 confirmé
    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
    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 émérite
    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
    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

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