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 :

[Debutant]PB assigner resultats de requetes dans variables


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Par défaut [Debutant]PB assigner resultats de requetes dans variables
    Bonjour,

    je me connecte a une base de access via java, en faisant une requete ca fonctionne ok, quand je fais un simple println de mon resultat ok cela s 'affiche mais lorsque je veux assigner ce resultat a une variable

    j'obtiens ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception -> java.sql.SQLException: No data found
    pourtant j 'ai declaré mes variables avec le bon format :

    voici 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
     
     
    import java.sql.*;
     
    public class makequery_DB{//deb class
     
     
    	public static void main(String args[]) {//main
     
    				String url = "jdbc:odbc:JOS";
    			//	String myquery="SELECT DISTINCT CInt(Trim(Right(Left([notice_id],Len([notice_id])-7),Len(Left([notice_id],Len([notice_id])-7))-6))) AS JOS_NUM FROM ojs WHERE (((Month([publication_date]))=12) AND ((Year([publication_date]))=2007)) GROUP BY CInt(Trim(Right(Left([notice_id],Len([notice_id])-7),Len(Left([notice_id],Len([notice_id])-7))-6)));"; 
    				String myquery="SELECT DISTINCT jo_planification.jonum, jo_planification.date_pub, jo_planification.year_pub, jo_planification.month_pub, jo_planification.day_pub, jo_planification.bool_report FROM jo_planification  WHERE (((jo_planification.date_pub)=#1/4/2008#))GROUP BY jo_planification.jonum, jo_planification.date_pub, jo_planification.year_pub, jo_planification.month_pub, jo_planification.day_pub, jo_planification.bool_report;";
    				int jonum=0;
    				int year_pub=0;
    				int month_pub=0;
    				int day_pub=0;
    				Date date_pub;
    				boolean bool_report=false;
     
     
    				Connection con = null; 
     
    				try {//try1
    		   	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     
    				con = DriverManager.getConnection(url,"",""); 
    				Statement requete = con.createStatement();
     
    				System.out.println(myquery);
     
    				ResultSet resultat= requete.executeQuery(myquery); 
    					while (resultat.next()) { //while
    					System.out.println("JOS N° : "+resultat.getInt(1));
    			   	jonum=resultat.getInt(1);
     
    					System.out.println("Date pub : "+resultat.getDate(2));
    				//	date_pub=resultat.getDate(2);
     
    				   System.out.println("Year pub : "+resultat.getInt(3));
    			   //	year_pub=resultat.getInt(3);
     
    					System.out.println("Month pub : "+resultat.getInt(4));
    				//   month_pub=resultat.getInt(4);										
     
    					System.out.println("Day pub : "+resultat.getInt(5));
    				// 	day_pub=resultat.getInt(5);
     
    					System.out.println("Bool report "+resultat.getBoolean(6));
    			    	bool_report=resultat.getBoolean(6);
     
    			//		System.out.println("Date de publication : "+day_pub+"/"+month_pub+"/"+year_pub);
     
     
    					}; //while
    				} //try1
    				catch(Exception e) { System.out.println("Exception -> "+ e); } //try1
    				finally {//try1 
    				try {con.close();} 
    				catch(SQLException e) {System.out.println("SQLException -> "+e);}
    				}}}

    et pas d'erreur a la compilation et voila l 'erreur lorsque j 'execute:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
     ----jGRASP exec: java makequery_DB
     
    SELECT DISTINCT jo_planification.jonum, jo_planification.date_pub, jo_planification.year_pub, jo_planification.month_pub, jo_planification.day_pub, jo_planification.bool_report FROM jo_planification  WHERE (((jo_planification.date_pub)=#1/4/2008#))GROUP BY jo_planification.jonum, jo_planification.date_pub, jo_planification.year_pub, jo_planification.month_pub, jo_planification.day_pub, jo_planification.bool_report;
    JOS N° : 2
    Exception -> java.sql.SQLException: No data found
     
     ----jGRASP: operation complete.
    merci pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut
    Bonjour,

    A vue de nez comme ça moi je ferais une classe qui représenterait les infos que tu récupères.
    Par exemple tu as une table personne : nom, prénom, âge, taille dans ta BDD. Tu dois faire une classe qui contient ces mêmes attributs avec des getters et des setters.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Personne {
    private final String nom, prenom
    private final int age, taille
    //Et les setters et getters
    public void setNom(String nom) {
    this.nom = nom;
    }
    public String getNom() {
    return nom;
    }
    // Même chose pour les autres attributs
    Ensuite pour récupérer tu créeras une instance de ta classe Personne.
    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
    public static void main(String[] args) {
    String sql = "select nom, prenom, age, taille from personne";
    Statement stmt = //et le tralala
    ResultSet res = stmt.executeQuery(sql);
    Personne unePersonne = new Personne();
    while (res.next()) {
    unePersonne.setNom(
    res.getString("nom));
    unePersonne.setPrenom(
    res.getString("prenom"));
    unePersonne.setAge(
    res.getInt("age"));
    //Ainsi de suite
    }
    }
    }
    On aurait pu aussi faire le constructeur de la classe Personne pour prendre en paramètres chaque attributs.

    J'espère que je n'ai pas dit trop de bêtises. Je répond en fonctions de ce que je sais, après ça n'est pas forcément la meilleure façon.

    Cordialement,

    Raphaël POITEVIN

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Par défaut
    Salut,

    je te remercie pour tes conseils que je vais suivre

    merci

Discussions similaires

  1. Resultat d'une requete dans variable
    Par dashblade dans le forum IHM
    Réponses: 3
    Dernier message: 09/06/2008, 09h56
  2. resultat requete dans variable texte
    Par fomy dans le forum VBA Access
    Réponses: 9
    Dernier message: 24/03/2008, 11h54
  3. [C#] Récuperer resultat plusieurs requete dans dataGrid
    Par moulefrite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/07/2007, 15h38
  4. Mettre resultat commande MSDOS dans variable
    Par vpovpo dans le forum Windows
    Réponses: 1
    Dernier message: 05/01/2007, 17h09
  5. [C#] Affichage resultat de requete dans 2 Labels
    Par kenzo080 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2004, 20h07

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