Bonjour,

J'ai développé une application en Java sous eclipse. J'utilise le dernier driver jdbc 4.0 pour sql serveur ( sqljdbc4.jar ) pour me connecter à la base de données, et mon application tourne sous la version jre6.

Pour exécuter mon application, j'utilise un batch, qui exécute le jar de mon application, ainsi que tous les jar necessaires au bon fonctionnement de l'appli.

Jusque là, ça va, tout fonctionne sur ma machine, qui est en XP 32 bit. J'arrive à intéragir avec la base, etc etc..


Cependant, j'ai essayé d'installer l'application sur un poste windows 64 bit, et là ça se corse.
En effet, au démarrage de l'application, la connexion s'effectue et réussie ( j'en suis sûr sinon l'application n'afficherait pas le menu principal ). Mais ensuite, plus moyen d'intéragir avec la base de données, ça fait complètement planter l'application dès que je vais sur un écran qui necessite une requete

J'ai essayé d'installer eclipse sur la machine en question, et ça fonctionne très bien sous eclipse !

Pour moi, la connexion est donc perdue aussitot après avoir été établie. Auriez vous une idée pour résoudre le problème ? Ca fait 2 jours que je me tue à chercher

Voici mon code pour se connecter :
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
/**
     * Ouvre la connexion 
     * 
     * @return
     * @throws ClassNotFoundException
     * @throws SQLException 
     */
    public static Connection getConnection() throws ClassNotFoundException, SQLException
    {
        Class.forName(driver);
 
        // singleton de la connexion
        if(cnx == null) {
            try {
                url = "jdbc:sqlserver://";
                url+= getHost()+":1433;";
                url+= "databaseName="+ getNomBase();
                cnx = DriverManager.getConnection(url, utilisateur, motDePasse);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return cnx;
    }
Et voici un exemple de requete sur laquelle l'appli tournant sur un 64 bit plante :
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
 /**
     * Retourne la liste de tous les fournisseurs présents en base
     *  
     * @return Vector fournisseurs
     */
    public Vector getToutFournisseurs() {
        // déclarations
        Vector fournisseurs = new Vector();
        Fournisseur fournisseur;
        String requete = "SELECT foID, foNom FROM Fournisseur ORDER BY foNom";
 
        // exécution de la requete
        Statement stmt;
        try {
            stmt = ConnexionManager.getConnection().createStatement();
 
            ResultSet rs = stmt.executeQuery(requete);
 
            // resultat
            while (rs.next()) {
                fournisseur = new Fournisseur();
                fournisseur.setCode(rs.getString("foID"));
                fournisseur.setNom(rs.getString("foNom"));
                fournisseurs.add(fournisseur);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
 
        return fournisseurs;
    }
Je rappelle que TOUT fonctionne sur un windows XP, que le problème vient donc du seven 64 bits.
Et j'ai également essayé toutes les version de sqljdbc, ainsi que tous les modes de compatibilité pour le jar de mon projet.

Voila, merci d'avance