Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
786 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Impossible de se connecter à une base Access ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Impossible de se connecter à une base Access ...

n°978911
Mazda3
Posté le 11-02-2005 à 16:15:33  profilanswer
 

Je n'arrive pas à me connecter à une base Access  :cry:  
 

Code :
  1. String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=/home/projets/xxxx/xxx/bdd/Analyse.mdb;DriverID=22;READONLY=true}";
  2. String user = "user";
  3. String pass = "xxxxx";
  4. public String test(){
  5.  PreparedStatement pGet=null;
  6.  ResultSet rst = null;
  7.  Connection con = null;
  8.  String get = "select count(*) from localisation";
  9.  String laValeur = "";
  10.  try {
  11.   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  12.   System.out.println(url+","+user+","+pass);
  13.   con = DriverManager.getConnection(url,user,pass);
  14.   pGet = con.prepareStatement(get);
  15.   pGet.clearParameters();
  16.   rst = pGet.executeQuery();
  17.   if (rst.next()) {
  18.    laValeur = ""+rst.getInt(1);
  19.   }
  20.   rst.close();
  21.   rst = null;
  22.   pGet.close();
  23.   pGet = null;
  24.   con.close();
  25.   con = null;
  26.  } catch (Exception e) {
  27.   e.printStackTrace();
  28.  } finally {
  29.   if (rst != null) {
  30.    try {
  31.     rst.close();
  32.    } catch (SQLException e) {
  33.     ;
  34.    }
  35.    rst = null;
  36.   }
  37.   if (pGet != null) {
  38.    try {
  39.     pGet.close();
  40.    } catch (SQLException e) {
  41.     ;
  42.    }
  43.    pGet = null;
  44.   }
  45.   if (con != null) {
  46.    try {
  47.     con.close();
  48.    } catch (SQLException e) {
  49.     ;
  50.    }
  51.    con = null;
  52.   }
  53.  }
  54.  return laValeur;
  55. }


 
J'obtiens cette erreur :
 

Citation :

java.lang.NullPointerException
 at sun.jdbc.odbc.JdbcOdbcDriver.initialize(JdbcOdbcDriver.java:436)
 at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:153)
 at java.sql.DriverManager.getConnection(DriverManager.java:512)
 at java.sql.DriverManager.getConnection(DriverManager.java:171)
 a

mood
Publicité
Posté le 11-02-2005 à 16:15:33  profilanswer
 

n°978938
Mazda3
Posté le 11-02-2005 à 16:24:40  profilanswer
 

pom pom pom

n°978966
djok_fb
C'était mieux avant!
Posté le 11-02-2005 à 16:43:45  profilanswer
 

Tu as déclaré comme il faut ta base access dans le gestionnaire ODBC?
(Source de données ODBC dans Panneau de conf./Outils d'administration)

n°978971
WhatDe
Posté le 11-02-2005 à 16:47:21  profilanswer
 

Tite question comme ca: pourquoi tu utilises prepareStatement au lieu de mettre la query dans executeQuery() ?

n°978996
Mazda3
Posté le 11-02-2005 à 17:01:58  profilanswer
 

djok_fb a écrit :

Tu as déclaré comme il faut ta base access dans le gestionnaire ODBC?
(Source de données ODBC dans Panneau de conf./Outils d'administration)


 
Pourquoi déclaré car justement j'utilise la méthode de connexion qui n'a pas besoin de la déclaré en source de donnée. Il suffit juste de donner le chemin :
 
http://java.developpez.com/faq/jdb [...] accessOdbc

n°978998
Mazda3
Posté le 11-02-2005 à 17:04:35  profilanswer
 

WhatDe a écrit :

Tite question comme ca: pourquoi tu utilises prepareStatement au lieu de mettre la query dans executeQuery() ?


 
Un copier-coller d'une fonction qui donnait des parametres pour le PreparedStatement, dont j'ai supprimer la ligne avec le setInt  :whistle:

n°979005
djok_fb
C'était mieux avant!
Posté le 11-02-2005 à 17:08:11  profilanswer
 

mazda3 a écrit :

Pourquoi déclaré car justement j'utilise la méthode de connexion qui n'a pas besoin de la déclaré en source de donnée. Il suffit juste de donner le chemin :
 
http://java.developpez.com/faq/jdb [...] accessOdbc


Dans ce cas, il y a peut-être un bout qui manque dans ta URL?

n°979015
Mazda3
Posté le 11-02-2005 à 17:21:49  profilanswer
 

djok_fb a écrit :

Dans ce cas, il y a peut-être un bout qui manque dans ta URL?


 
heu ... quel bout ?
 
J'ai TOUT essayé  :  
 

Code :
  1. String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=/home/projets/xxxx/xxx/bdd/Analyse.mdb;DriverID=22;READONLY=true}";


 

Code :
  1. String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=/home/projets/xxxx/xxx/bdd/Analyse.mdb";


 

Code :
  1. String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=home/projets/xxxx/xxx/bdd/Analyse.mdb";


 

Code :
  1. String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=\\home\\projets\\xxxx\\xxx\\bdd\\Analyse.mdb";


 

Code :
  1. String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=home\\projets\\xxxx\\xxx\\bdd\\Analyse.mdb";


 
Toujours la même erreur !!!!!
 
Le pb c'est que le Tomcat que j'utilise, se situe sur un serveur Linux ... Donc pour installer un pont ODBC sur la machine, c'est pas pour demain  :sweat:  
 
Là je suis bloqué  :sweat:  :cry:


Message édité par Mazda3 le 11-02-2005 à 17:22:51
n°979042
djok_fb
C'était mieux avant!
Posté le 11-02-2005 à 17:56:18  profilanswer
 

Des infos sur le ODBC JDBC Bridge:
http://java.sun.com/j2se/1.5.0/doc [...] e.doc.html
 
Mais j'ai trouvé ça:
http://www.javaworld.com/javaworld [...] ccess.html
 
Je me souviens d'avoir utilisé ce drivers pour accéder à une base Access, mais pas sans avoir déclaré la source dans Windows...
 
Je pense pas que tu puisses y accèder de Linux comme ça...
 
Mais je peux me tromper...

n°979069
glod 2
Votre trajet, notre projet.
Posté le 11-02-2005 à 18:30:34  profilanswer
 

normalement ça marche juste avec le chemin vers la base....ah tiens j'ai utilisé ça au boulot y a pas longtemps, jte trouve le bout de code jreviens.

mood
Publicité
Posté le 11-02-2005 à 18:30:34  profilanswer
 

n°979071
glod 2
Votre trajet, notre projet.
Posté le 11-02-2005 à 18:32:58  profilanswer
 

Code :
  1. public Connection openConnection() throws SQLException {
  2.             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  3.             String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+ this.base; //this.base ex : c:/base.mdb
  4.             Connection conn = DriverManager.getConnection(url,login,password);
  5.             this.setAccessCon(conn);
  6.             return conn;
  7.     }

n°979089
darklord
You're welcome
Posté le 11-02-2005 à 18:55:02  profilanswer
 

[:totoz]

n°979179
Mazda3
Posté le 11-02-2005 à 21:52:52  profilanswer
 

Glod 2 a écrit :

Code :
  1. public Connection openConnection() throws SQLException {
  2.             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  3.             String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+ this.base; //this.base ex : c:/base.mdb
  4.             Connection conn = DriverManager.getConnection(url,login,password);
  5.             this.setAccessCon(conn);
  6.             return conn;
  7.     }



 
Oui c'est ce que j'ai fait ...

n°979180
Mazda3
Posté le 11-02-2005 à 21:53:08  profilanswer
 


 
Très passionnant  :o  

n°979182
darklord
You're welcome
Posté le 11-02-2005 à 21:57:08  profilanswer
 

mazda3 a écrit :

Très passionnant  :o


 
c'est bien ce qu'il me semble aussi [:kiki]

n°979191
glod 2
Votre trajet, notre projet.
Posté le 11-02-2005 à 22:26:52  profilanswer
 

mazda3 a écrit :

Oui c'est ce que j'ai fait ...


ben y a un autre problème alors. T'as les droits sur la base ? Pas d'erreur dans le chemin ?

n°979388
benou
Posté le 12-02-2005 à 12:57:52  profilanswer
 

mazda3 > il est chaud à lire ton code !
c'est quoi toutes ces initialisations inutiles et tout ces "truc=null" ?? [:le kneu]
et la gestion des exceptions :/
 
pour qu'il y ait un NPE sur le getConnection, je vois qu'une possibilité : que l'une des variables que tu lui passes soit à null ...


Message édité par benou le 12-02-2005 à 12:58:15
n°979575
Mazda3
Posté le 12-02-2005 à 18:30:13  profilanswer
 

benou a écrit :

mazda3 > il est chaud à lire ton code !
c'est quoi toutes ces initialisations inutiles et tout ces "truc=null" ?? [:le kneu]
et la gestion des exceptions :/
 
pour qu'il y ait un NPE sur le getConnection, je vois qu'une possibilité : que l'une des variables que tu lui passes soit à null ...


 
Ce code est conseillé sur le site d'Apache Tomcat pour bien libérer les pools.
Mais bon copier-coller pour ma fonction de test  :D , même si je n'utilise pas les pools avec Access  :whistle:  
 
Sinon dans le code, tu vois bien que je fais une sortie console des parametre et aucune n'est à null ...

n°979582
benou
Posté le 12-02-2005 à 18:42:32  profilanswer
 

mazda3 a écrit :

Ce code est conseillé sur le site d'Apache Tomcat pour bien libérer les pools..


url ?

n°979594
Mazda3
Posté le 12-02-2005 à 19:02:27  profilanswer
 
n°979759
benou
Posté le 13-02-2005 à 01:17:03  profilanswer
 

mais pkoi ils font des closes dans le try si ils les font dans le finally  :heink:  
et pourquoi tous ces "= null"  [:wam]

n°979766
glod 2
Votre trajet, notre projet.
Posté le 13-02-2005 à 01:57:03  profilanswer
 

ça doit être une coquille...c'est débile de les faire dans le try.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Impossible de se connecter à une base Access ...

 

Sujets relatifs
Pool et accessRule access probleme
Application VB avec gestion access sans access installé !!Connection à une BDD Access depuis VBA sous Excel
converions ACCESS / ORACLEQuelle base de donnees avec VB .NET??
Génération de script de base de donnéesQuels droits nécessaires pour utiliser un fichier Access?
base de données sur PDA Cassiopeia EM 505Planning partagé sous Access
Plus de sujets relatifs à : Impossible de se connecter à une base Access ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR