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

JDBC Java Discussion :

Exécution de requêtes successives


Sujet :

JDBC Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Exécution de requêtes successives
    Bonjour,

    je travaille avec une base de données Access (autoCommit false, requêtes Update validées par Commit)

    J'ai créé une requête Update qui fonctionne bien (lancée après l'appui sur un bouton n°1).
    J'ai créé une requête Select qui fonctionne bien (lancée après l'appui sur un autre bouton n°2).

    Si je place le code qui exécute la requête Select du bouton n°2 juste après le code qui exécute la requête Update dans le code du bouton n°1, la requête Select ne s'effectue pas.

    soit :
    Bouton n°1 : exécute Update ; commit ;
    Bouton n°2 : exécute Select ;

    Appui sur Bouton n°1 puis sur Bouton n°2 : ça marche...

    Mais :
    Bouton n°1 : exécute Update ; commit ; exécute Select ;
    Appui sur Bouton n°1 : ça ne marche pas (Select ne s'est pas exécutée)...

    J'ai cherché du côté des threads... sans succès...

    Merci de m'éclairer si vous avez des idées... Je suis débutant en Java et ce problème me laisse plutôt perplexe !!!

    Jean-Pierre

  2. #2
    nma
    nma est déconnecté
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 225
    Points : 108
    Points
    108
    Par défaut
    bonjour,

    ne faudrait' il pas lancer la 2nd requête sur le résultat du commit ???
    afin d' etre sur que tout est fait !!

    Nicolas

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par nma Voir le message
    bonjour,

    ne faudrait' il pas lancer la 2nd requête sur le résultat du commit ???
    afin d' etre sur que tout est fait !!

    Nicolas
    Bonsoir et merci pour la réponse...

    mais je ne comprends pas bien "sur le résultat du commit" ;

    Jean-Pierre

  4. #4
    nma
    nma est déconnecté
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 225
    Points : 108
    Points
    108
    Par défaut
    ce que je voulais dire c'est qu'il faut attendre que la première requête soit fini et entièrement exécuter si tu comptes faire un select derrière.
    Nicolas

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par nma Voir le message
    ce que je voulais dire c'est qu'il faut attendre que la première requête soit fini et entièrement exécuter si tu comptes faire un select derrière.
    Nicolas
    Bonsoir,
    c'est ce que je crois avoir fait ("Bouton n°1 : exécute Update ; commit ; exécute Select" )... mais qui ne donne rien : la requête Select appelée qui suit le "commit" ne s'exécute pas.

    Merci pour ta réponse,
    Jean-Pierre

  6. #6
    nma
    nma est déconnecté
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 225
    Points : 108
    Points
    108
    Par défaut
    Le commit n'est pas instantané !!

    Mais peut être cela serait' il plus simple avec un bout de code !!

    Nicoolas

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par nma Voir le message
    Le commit n'est pas instantané !!

    Mais peut être cela serait' il plus simple avec un bout de code !!

    Nicoolas
    J'ai déjà rencontré ce même problème dans d'autres situations... sans trouver de solutions...

    Voici le bout de code concerné :

    Statement st_coche;
    st_coche = dataBase.statement;
    String coche = "UPDATE tbl_stock SET tbl_stock_CODECENTRA = '" + value + "' WHERE num_cle_tbl_stock = " + ligne + ";";
    try {
    st_coche.executeUpdate(coche);
    dataBase.connection.commit();

    dataBase.executeQuery(Global.requete_visu);

    .../...

    "Global.requete_visu" est une requête Select parfaitement opérationnelle... mais qui ne s'exécute pas !!!

    Merci encore,
    Jean-Pierre

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    C'est quoi cette classe Database? il sort d'ou ce statement, il est créé comment? Pourquoi n'y a-t-il pas de close du statement? Quelle erreur tu obtiens? Bref, donne nous plus de code là, c'est très très flou et à la limite ça ressemble même pas à du java :/ Et que fous ce ";" dans ta requête SQL??

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    C'est quoi cette classe Database? il sort d'ou ce statement, il est créé comment? Pourquoi n'y a-t-il pas de close du statement? Quelle erreur tu obtiens? Bref, donne nous plus de code là, c'est très très flou et à la limite ça ressemble même pas à du java :/ Et que fous ce ";" dans ta requête SQL??
    Bonjour,

    Oui, je sais, je n'ai pas encore intégré toutes les subtilités de Java... Mais j'essaie, en autodidacte d'avancer tant bien que mal...

    Je n'ai mis que des extraits de code, voulant juste savoir pourquoi, quand j'exécute la séquence en une fois (depuis un bouton par exemple) "execute update ; commit ; statement close ; execute select" la requête select ne s'effectue pas (pas de message d'erreur).
    Et quand je l'exécute en deux fois (depuis deux boutons par exemple) "execute update ; commit ; statement close" puis "execute select" la requête select s'effectue bien.

    Merci pour votre attention
    Jean-Pierre

    P.S. : le premier point virgule est le point virgule de la fin de la chaîne SQL, le deuxième le point virgule celui de la fin de ligne.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Et je ne vais pas pouvoir répondre à tes question si tu ne me donne pas ce que j'ai demandé, du code, les erreurs que tu obtiens concrètement (ça veux dire quoi "ne s'effectue pas").

    PS: le ; est inutile dans les requêtes SQL envoyées par java. Ca sert à séparer, au niveau de l'éditeur les différentes requêtes, mais les SGBD ne peux de toutes façons traiter qu'une seule requête à la fois, il ignore donc le ; et sour certains driver ça déclenche même un erreur de syntaxe

Discussions similaires

  1. Exécuter une requête non-query
    Par Piet dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 07/02/2007, 15h01
  2. [ADO.Net][C#/Mysql] Comment exécuter une requête paramétrée?
    Par wremacle dans le forum Accès aux données
    Réponses: 6
    Dernier message: 07/02/2006, 16h55
  3. [STRUTS/HIBERNATE] Problème d'exécution de requête
    Par mc_chicken dans le forum Hibernate
    Réponses: 5
    Dernier message: 21/10/2005, 09h27
  4. Comment exécuter une requête rapidement
    Par kardevlop dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/10/2005, 13h45
  5. Réponses: 2
    Dernier message: 17/10/2005, 14h58

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