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 :
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 /** * 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; }
Je rappelle que TOUT fonctionne sur un windows XP, que le problème vient donc du seven 64 bits.
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; }
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
Partager