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 :

nombre d'enregistrement d'un resulSet


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut nombre d'enregistrement d'un resulSet
    bonjour
    j'ai une petite question:

    je fais une requete et je mis le résultat dans un resulSet
    quelle est l'instruction qui me permet de récuperer le nombre d'enregistrement
    d'un resulSet??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    st=con.createStatement();
    		rs=st.executeQuery("select distinct gss_warehouse.whs_adresse from actor");

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Salut,

    Faut lire les javadocs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    rs.last();
    int nbObjects = result.getRow();
    Mais attention, ceci n'est pas la meilleur implementation sur des nombres important de lignes !
    Dans ce cas il faut mieux lire le resultat d'un "SELECT COUNT(*) FROM (Ta requete)".

    ---
    Farid.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    merci pour avoir pris le soin de lire mon post
    et si j'ai pas lu les javadocs ça ne veux pas dire que je cherche des solutions prèts mais j'ai pas le temps,je suis vraiment sous pression pour terminer mon projet
    pour la solution du
    Dans ce cas il faut mieux lire le resultat d'un "SELECT COUNT(*) FROM (Ta requete)".
    ça ne m'aide pas car ma requete contient un"group by" dont ça me donne le nombre de chaque regroupment et non pas la totalité des enregistrements

    j'ai essayé la solution du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    rs.last();
    int nbObjects = result.getRow();
    mais ça ma donné l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Opération non valide sur un ensemble de résultats de type forward-only : last
    je ne comprend pas ??

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 950
    Points : 4 373
    Points
    4 373
    Par défaut
    pour utiliser le "truc" du "last(); getRow')" il faut que le result set soit scrollable…

    sinon vous ne pourrez pas revenir au "first()" pour parcourir le résultat…
    ce que vous ne pourrez pas faire non plus si le getType() du result set renvoit TYPE_FORWARD_ONLY…

    par contre si vous écrivez un query avec un subselect de cette façon :
    select count(*) from (select … from … where … group by …)
    le count(*) sera bien le nombre de records que vous espérez…

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Citation Envoyé par john_wili Voir le message
    merci pour avoir pris le soin de lire mon post
    et si j'ai pas lu les javadocs ça ne veux pas dire que je cherche des solutions prèts mais j'ai pas le temps,je suis vraiment sous pression pour terminer mon projet
    Pas de soucis

    Comme le dit JeitEmgie, Il faut en effet avoir un resultset scrollable.

    Voici ce que j'utilise avec oracle 9i:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    stmt = dbConnection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
    rs=st.executeQuery("....");
    A voir si ca marche dans ton contexte.

    Par contre j'ai pas compris l'histoire du group by ?
    Mets nous ta requete et un exemple de resultat que tu aimerais avoir

    ---
    Farid

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 950
    Points : 4 373
    Points
    4 373
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    Pas de soucis

    Par contre j'ai pas compris l'histoire du group by ?

    Farid
    select count(*), … from … where … group by …
    (le count(*) sera le nombre de rows de chaque group by …)

    !=

    select count(*) from (select … from … where … group by … )
    (le count(*) sera le nombre total de rows …)

  7. #7
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    bonjour,
    j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
    rs=st.executeQuery("requete");
    rs.last();
    int step = rs.getRow();
    et pour revenir ou 1er element du rs pour le parcourir et extraire des données j'ai fais ça:
    et ça marche bien
    et la solution du:
    select count(*) from (select … from … where … group by … )
    (le count(*) sera le nombre total de rows …)
    ça me donne juste le nombre d'enregistrement et pour extraire les données je dois faire une autre requete ou bien je fais 1 seule requete pour avoir le nombre et les autres données mais ça va etre une requete compliquée

    en tous les cas merci pour les réponses
    JeitEmgie Farid_92

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut penser à lire la FAQ ! La réponse s'y trouvait noir sur blanc : Comment connaître le nombre de lignes/colonnes d'un ResultSet ?

    a++

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    oui c'etait bien au cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from (select … from … where … group by … )
    ou je faisais reference dans mon premier msg.
    Je pensais qu'il voulait avoir le nombre de lignes avant de faire un "select … from … where … group by … ".

    Mais bon si le scroll marche tout roule.
    bonne continuation.

    ---
    Farid

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

Discussions similaires

  1. [DB] Nombre d'enregistrements d'une table
    Par Mister Nono dans le forum Bases de données
    Réponses: 26
    Dernier message: 09/05/2006, 09h51
  2. Réponses: 4
    Dernier message: 29/05/2004, 14h29
  3. Limiter le nombre d'enregistrement
    Par BXDSPORT dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/04/2004, 16h26
  4. [débutant] Limitation du nombre d'enregistrement renvoyé
    Par tmcgrady dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/11/2003, 09h41
  5. XMLGram et nombre d'enregistrements par page
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 7
    Dernier message: 26/02/2003, 12h35

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