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

Interfaces Graphiques en Java Discussion :

parcourir mon resultset


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut parcourir mon resultset
    Bonjour,

    J'ai essayé de mettre à jour une colonne d'une table a partir du contenu d'une autre colonne de la même table après l'avoir traité.
    J'ai utilisé Java pour effectuer le traitement et je ne réussit qu'à effectuer cette tache que pour la première ligne de ma table.
    Je ne sais pas pourquoi je suis incapable de parcourir le "result set".

    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
    //sélectionner les enregistrements à mettre à jour
    String Sql="Select Update_Action,id_incident from   incident where Status like 'Closed'";
                con = getConnection("jdbc:mysql://localhost:3306/base_rapport","root","");
                stmt=con.createStatement();
                rs=stmt.executeQuery(Sql);
               //éffectuer le traitement 
               int i=1;
                while(rs.absolute(i)){
                    str=rs.getString(1);
                    nom="";
                    while(!"".equals(str)){
                    int debut=str.indexOf('(')+1;
                    int fin=str.indexOf(')',debut);
                    nom += " "+str.substring(debut,fin);
                    str=str.substring(fin+1,str.length()); 
                    nom+=", ";       
          //mettre à jours ma table       
          Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/base_rapport", "root", "");
          String query = "update incident set intervenants = ? where id_incident=?";
          java.sql.PreparedStatement preparedStmt = conn.prepareStatement(query);
          preparedStmt.setString(1,nom);
          preparedStmt.setString(2,rs.getString(2));
          preparedStmt.executeUpdate();    
     
                    }
                    //pour passer à la ligne suivante du "resultset"
                    i++;
                }
    Merci de m'aider à résoudre ce problème.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Pour parcourir le resultset, en tout cas pour "avancer dedans". La commande est

    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations forums :
    Inscription : Juillet 2012
    Messages : 200
    Points : 342
    Points
    342
    Par défaut
    Bonjour. Pour parcourir un ResultSet de façon séquentielle, il est préferable d'utiliser la méthode next().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    con = getConnection("jdbc:mysql://localhost:3306/base_rapport","root","");
    stmt=con.createStatement();
    rs=stmt.executeQuery(Sql);
    while(rs.absolute(i)){
            // éffectuer le traitement sur la ligne courante
            ...
    }
    Ensuite pourquoi créer deux connexions à la même base de données ? Il est possible de créer plusieurs objets Statement avec une seule connexion.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    merci pour vos réponses. avant d'utiliser rs.absolute() , j'ai utilisé rs.next() mais rien.

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Ca doit donc venir des tes requêtes... on te l'a déjà dit, ce que tu tentes de faire est faisable en SQL pure sans java. (même si java peut lancer la requête magique) mais comme tu es borné, moi je ne peux plus rien pour toi.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    j'ai créer cette fonction sql:
    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
     
    delimiter |
    create function interven(s  varchar(2000)) returns varchar(2000)
    DETERMINISTIC
    begin 
    declare nom varchar(2000);
    declare  str varchar(2000);
    declare debut int;
    declare fin int;
    set str=s;
    set debut =locate('(',str)+1; 
    set fin=locate(')',str,debut); 
    set nom=nom+' '+substring(str,debut,fin);
    set str=str+substring(fin+1,length); 
    set nom=nom+", ";  
    return nom;
    end|
    delimiter ;
    mais si je fais l'appel de cette fonction rien ne se change dans ma table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update incident set intervenants = interven(update_action) where status = 'closed'

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

Discussions similaires

  1. Je n'arrive pas à parcourir mon tableau $_POST
    Par beegees dans le forum Langage
    Réponses: 7
    Dernier message: 22/03/2009, 11h59
  2. probleme avec mon resultset
    Par bracket dans le forum JDBC
    Réponses: 6
    Dernier message: 13/11/2008, 12h47
  3. j'arrive pas à parcourir un resultset avec while
    Par une_tite_question dans le forum JDBC
    Réponses: 11
    Dernier message: 12/06/2008, 16h53
  4. Réponses: 2
    Dernier message: 01/03/2008, 11h43
  5. comment parcourir un resultset plusieurs fois. ?
    Par MAJIK_ENIS dans le forum JDBC
    Réponses: 1
    Dernier message: 01/06/2006, 07h52

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