JAVA sous netbeans et base de donnée access

donuts -  
 denis -
Bonjour,
j'ai établi une connexion avec ma base de donnée dans une fonction connect()
et j'ai tenté de faire une requête de lecture de donnée dans la base

public ResultSet SQLSelect(String sql) throws SQLException {

Statement creerconnec = null;

ResultSet RS = null;

try {

creerconnec = connection.createStatement();
RS = creerconnec.executeQuery(" SELECT Nom du prof,Prènom From Table1 ");

int execut = creerconnec.executeUpdate(sql);
System.out.println("liste des professeurs :");

while(RS.next()){

System.out.println(RS.getString("Nom du prof,Prènom"));

}
}

catch (SQLException e) {

RS.close();

creerconnec.close();

return null;

}
return null;
}

lorsque je lance mon programme rien ne s'affiche quelqu'un peut me mettre sur la voie ?
Configuration: Windows XP
Firefox 3.1

1 réponse

  1. freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention   165
     
    Fait un System.out.println(e.getMessage()); dans ton bloc
    catch (SQLException e) {

    RS.close();

    creerconnec.close();

    return null;

    }.
    Ou tout autre te permettant de verifier si tu passe par le bloc catch.
    Et vérifie aussi que Access soit bien lancé, avec la bonne base ouverte.

    Pitite question: ya pas un passage de paramètre que tu zappe? parce rien n'indique dans ce code que tu te connecte à une certaine base. Tu ne l'a pas défini en tout cas
    0
    1. donuts
       
      salut merci d'avoir repondu

      enfaite j'ai une fonction connect() juste avant

      public boolean connect()
      {

      try
      {
      // Chargement du driver ODBC

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      // Connexion à la base
      //ici se trouve l'adresse de la base de donnée "BDD.mdb"
      String connectionString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*BDD.mdb)}; DBQ=" + chemin;
      connection = DriverManager.getConnection(connectionString);
      }
      //erreur class résidu du driver ODBC non trouvé
      catch (ClassNotFoundException e)
      {

      System.out.println("Problème avec le driver ODBC");

      return false;

      }
      //erreur de connection à la base
      catch (SQLException e)


      {

      System.out.println("Impossible de se connecter à la base");

      return false;
      }
      return true;
      }
      0
      1. freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention   165 > donuts
         
        He beh certes, mais dans ta deuxième fonction, ou dans ton main (parce qu'il faut un main pour que sa se lance a un moment donné), il faut faire un connect(); sinon il va pas se connecter.
        0
      2. donuts > freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention  
         
        pas bete ça ! lol

        nan mais le soucis c'est que j'utilise des jframe avec netbeans (j'ai pas vraiment de main mon main c'est ma première fenêtre)
        et quand je met

        public class debut extends javax.swing.JFrame {

        /** Creates new form debut */
        public debut() {
        initComponents();
        connect();
        }
        public String chemin;
        public Connection connection;
        //constructeur
        public debut(String chemin){
        this.chemin = chemin;

        }

        ça ne fonctionne pas j'ai rajouté un fprintf pour afficher un petit message au lancement de la fonction connect() et j'ai aucun résultat :(

        qu'est que j'ai oublié à ton avis ?
        0
      3. freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention   165 > donuts
         
        Si tu programme pas en thread, ou si tu n'appele rien après ton connect, sa sert a rien.
        Il faut savoir que ce que tu fait dans un bloc reste dans le bloc. En gros, ton connect te connect a ta bdd, mais si tu fait rien après, il sort et tu ne peut plus utiliser la connexion.
        Il faudrait que ta fonction connect te renvoie quelque chose pour utiliser la connection, par exemple un objet qui te permettrait de faire des requetes
        0
      4. denis > freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention  
         
        bonjour tout d'abord merci d'avoir répondu à mes postes

        j'ai réglé le problème de connexion

        mon objet connexion n'appelait pas les drivers

        j'ai remplacé
        connexion=DriverManager.getConnection(connectingString);
        par
        connexion=DriverManager.getConnection("jdbc:odbc:albums","","");

        et mon programme se connecte bien à ma base Access par la fonction connect()

        mais maintenant j'ai un autre problème...

        j'ai mis une requête dans un try catch mais je n'arrive pas à avoir la fonction executeQuery

        try{
        Statement etat = connection.createStatement();
        ResultSet rs = etat.?????;

        }
        catch(SQLExeption e){
        JOptionPane.showmessageDialog(this,"erreur d'execution de la requête"+e.detMassage());
        }

        while (rs.next()){
        System.out.print(rs.getstring(1));........etc
        0