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 :

Connexion établie, puis aussitôt fermée avec sqljdbc


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Connexion établie, puis aussitôt fermée avec sqljdbc
    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

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Là, ce serait bien de poste la trace de l'erreur !

    Une piste néanmoins :
    si la version de SQL Server est postérieure à 2000
    alors ajoute "SET NOCOUNT ON" avant ta requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            String requete = "SET NOCOUNT ON SELECT foID, foNom FROM Fournisseur ORDER BY foNom";
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/08/2007, 14h55
  2. Oracle 10g connexion à la base de donnée avec EM
    Par rmaah dans le forum Connexions aux bases de données
    Réponses: 11
    Dernier message: 18/04/2006, 11h15
  3. Connexion à une base de donnée avec swing sous eclipse
    Par kodo dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 07/04/2006, 11h03
  4. [XSL]Connexion à une base de données avec XSL
    Par muad'dib dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 07/02/2006, 10h06
  5. Réponses: 4
    Dernier message: 02/01/2006, 16h58

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