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 :

Executer deux requetes sql successivement


Sujet :

ASP

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 48
    Points
    48
    Par défaut Executer deux requetes sql successivement
    Voici deux requètes que j'aimerais exécuter mais lorsque j'execute la page ASP j'obtiens une erreur sur la deuxième

    Requètes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL="UPDATE vehicule SET numdossier='" & upl.Form("numdossier") & "'" & _
    "WHERE id_vehicule=" & upl.Form("id_vehicule") & ""		
    conn.execute(SQL)
    'on met à jour la date
    SQL="UPDATE maj SET date=" & upl.form("maj") & "" 
    conn.execute(SQL)
    Erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Microsoft OLE DB Provider for ODBC Drivers erreur '80040e14'
     
    [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction UPDATE.
     
    /adis/admin/modifvehicule.asp, ligne 144
    Merci de votre aide

  2. #2
    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 512
    Points
    9 512
    Par défaut
    Salut,

    Il faut des quotes à une date.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL="UPDATE maj SET date='" & upl.form("maj") & "';"
    Et puis une clause WHERE serait bienvenue sinon tu vas mettre à jour toute ta table.

    A+

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 48
    Points
    48
    Par défaut
    La clause WHERE ne me sert pas réellement car cette table ne contient qu'une seule valeur, la date de dernière mise à jour.
    Je viens d'essayer ces deux codes et j'obtiens toujours la même erreur d'où celà peut-il venir
    Code 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL="UPDATE maj SET date='" & upl.form("maj") & "';" 
    conn.execute(SQL)
    Code 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL="UPDATE maj SET date='" & upl.form("maj") & "' WHERE id_maj=1;" 
    conn.execute(SQL)

  4. #4
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    C'est une base ACCESS ?

    C'est quoi upl ?

    le champs date est-il bien de type date/time ?

    Pour m'éviter les problèmes avec les champs date, j'ai adopté pour règle absolue de toujours encadrer mes dates de # et de les passer au format américain : mm/jj/aaaa ( ou aaaa/mm/jj, je ne suis pas au bureau aujourd'hui et ne peux vérifier mes dires)

    Maintenant, et sous réserve que ce soit bien sous access, je suppose que la date que tu veux insérer est celle du jour, tu peux alors écrire simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update maj set date=now
    (ou now(), je ne sais plus trop)

    ceci dit, appeler un champs "date" n'est pas judicieux (mot réservé). Renomme-le plutot en majDate, par exemple

  5. #5
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Date est un mot protégé. Change le nom de ce champ dans ta base, cela devrait résoudre ton problème.

  6. #6
    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 : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Citation Envoyé par ryan Voir le message
    Yop!

    Date est un mot protégé. Change le nom de ce champ dans ta base, cela devrait résoudre ton problème.
    Exactement "date" fait partie des mots résérvés. j'ai eu ce problème aussi lorsque je débuté en asp avec les projets de l'école.

    Par ailleurs, à ma connaissance, je ne connais aucune BDD qui est capable d'exécuter 2 Requêtes en même temps (ce que tu essaye de faire dans ton code)

    Pour éviter les conflits de requête je donne jamais le même nom à deux requêtes différentes.

  7. #7
    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 512
    Points
    9 512
    Par défaut
    Salut,
    Citation Envoyé par kaiser59 Voir le message
    Par ailleurs, à ma connaissance, je ne connais aucune BDD qui est capable d'exécuter 2 Requêtes en même temps
    En même temps c'est à dire de façon concomitante? Ben si c'est possible, sinon, à quoi serviraient les verrous? Un serveur SQL peut ouvrir par défaut un peu moins de 4000 ports pour les requetes (potentiellement 4000 requetes en même temps). Heureusement d'ailleurs par ce que si il fallait attendre son tour cela prendrait des plombes. Access beaucoup moins par contre, il part assez rapidement en vrille (le fichier se bloque en lecture seule).

    En asp3, le code s'execute sur un seul thread (une seule requete) alors qu'en .Net on peut en lancer plusieurs. C'est d'ailleurs pourquoi on code threadsafe il me semble.
    Citation Envoyé par kaiser59 Voir le message
    ce que tu essaye de faire dans ton code
    Il ne me semble pas. Il les fait plutot l'une après l'autre. La methode semble bonne, juste une erreur de syntaxe.
    Comme il peut être fastidieux de repasser sur du code, il suffit de mettre mot reservé entre crochet dans la requete pour que cela passe.

    A+

  8. #8
    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 : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    ...
    Il ne me semble pas. Il les fait plutôt l'une après l'autre. La méthode semble bonne, juste une erreur de syntaxe.
    ...
    A+
    Visiblement il utilise Access par doute, j'ai fais un test.
    Résultat, impossible d'exécuter qqch d'assez simple, càd deux "select" (séparé par un ";" pour marquer la fin de l'instruction) en même temps depuis ACCESS.

    Donc logiquement s'il n'arrive pas à l'exécuter, ASP non plus n'y arrivera pas je pense.

    Si tu connais la bonne syntaxe Immobilis je veux bien la connaitre

  9. #9
    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 512
    Points
    9 512
    Par défaut
    Soyon plus précis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL="UPDATE vehicule SET numdossier='" & upl.Form("numdossier") & "'" & _
    "WHERE id_vehicule=" & upl.Form("id_vehicule") & ""		
    conn.execute(SQL)
    'on met à jour la date
    SQL="UPDATE maj SET date=" & upl.form("maj") & "" 
    conn.execute(SQL)
    Comme je disais, là c'est l'une après l'autre. Il y a là deux executions successives.
    Ensuite effectivement, Access XP (2007 je sais pas) n'execute pas plus d'une requete en une seule instruction. MS SQL Serveur peut le faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM TOTO; SELECT * FROM TITI;"
    L'ecriture elle même est séquentielle donc forcement c'est TOUJOURS l'une après l'autre sur UNE SEULE requete (un seul thread, un seul navigateur) quelle que soit la base de données. Et heureusement d'ailleurs.

    Par contre, deux utilisateurs peuvent accéder au même enregistrement en même temps, l'un posant un verrou en écrivant, l'autre en lisant. Donc la base de données peut executer plusieurs requetes en même temps mais pas pour le même "utilisateur".

    On peut en .net créer programmatiquement plusieurs threads. Ainsi, en un seul script, on peut executer plusieurs instructions SQL en même temps. En ASP3 ne n'est pas possible.

    A+

  10. #10
    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 : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Ok thx Immobilis (A quand l'ancien Avatar )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]exécution des requétes sql
    Par nabil dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/06/2006, 07h24
  2. Comment executer une requete sql delete dans une jsp ?
    Par DarkWark dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 24/05/2006, 16h59
  3. Réponses: 3
    Dernier message: 15/05/2006, 17h29
  4. [VBA-E] Temps d'execution de requetes SQL tres long
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2006, 10h25
  5. Pb d'execution de requete sql
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 11/05/2005, 10h19

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