[Résolut]JDBC/ ODBC erreur de connexion

JDBC/ ODBC erreur de connexion [Résolut] - Java - Programmation

Marsh Posté le 01-06-2010 à 10:20:28    

Bonjour j'ai pour mon stage l'exploitation d'un bdd access par java,je vous montre mon code:
j'ai une erreur de type :
"Erreur SQL : java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la clause FROM.BUILD SUCCESSFUL (total time: 1 second)
"
 

Code :
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package db;
  6. import java.sql.*;
  7. /**
  8. *
  9. * @author joukov
  10. */
  11. class Test {
  12.     public Test() {
  13.   try {
  14.    // Chargement du pilote JDBC
  15.    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  16.    // URL de connexion
  17.    //Data Source=C:\myFolder\myAccess2007file.accdb;
  18.    String url = "jdbc:odbc:cli";
  19.    // Connexion
  20.    Connection con = DriverManager.getConnection(url);
  21.    // Création d'une instruction
  22.    Statement statement = con.createStatement();
  23.    // Exécution d'une requete
  24.    String x="SELECT * FROM table";
  25. PreparedStatement ps=con.prepareStatement(x);
  26. ResultSet rs=ps.executeQuery();
  27.  
  28.  
  29.    //String query = "SELECT societe FROM table_a_jour";
  30.    //ResultSet resultset = statement.executeQuery(query);
  31.    // Traitement des résultats
  32.    while(rs.next()) {
  33.     System.out.println(rs.getString(2) + " " + rs.getString(3));
  34.    }
  35.    // fermeture de la connexion
  36.    con.close();
  37.   } catch( ClassNotFoundException e) {
  38.    System.err.println("Erreur lors du chargement du pilote : " + e);
  39.   } catch(SQLException sqle) {
  40.    System.err.print("Erreur SQL : " + sqle);
  41.   }
  42. }
  43. }


Message édité par joukovski le 01-06-2010 à 11:35:41
Reply

Marsh Posté le 01-06-2010 à 10:20:28   

Reply

Marsh Posté le 01-06-2010 à 10:32:46    

La description du problème est un peu confuse :
 
1. S'agit-il d'une erreur de connexion, comme l'indique le titre, ou d'une erreur de syntaxe du Select ?
 
2. Le nom "table" dans le code présenté est-il le vrai nom de la table ? Si oui, il vaudrait mieux choisir un autre nom que ce mot réservé.
 
3. Pourquoi mettre une étoile au lieu de nommer les colonnes que l'on veut récupérer ? L'étoile est une source de problèmes qu'il vaut mieux éviter. Donc, au moins pour un test, pourriez-vous faire une requête avec des vrais noms de colonne ?

Reply

Marsh Posté le 01-06-2010 à 10:59:58    

je ne sais pas du tout si c'est un probleme de connection ou juste de syntaxe....
oui le nom table est une table...(deja existante dans la societé ou j'effectue mon stage...)
étoile pour fair un essai
j'ai ecouter votre conseil j'ai donc essayer ca:

Code :
  1. ResultSet rs;
  2. rs=statement.executeQuery("select Référence from Prospects a jour;" );


ca me donne:
Erreur SQL : java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la clause FROM.

 

Merci beaucoup pour vos reponse


Message édité par joukovski le 01-06-2010 à 11:00:20
Reply

Marsh Posté le 01-06-2010 à 11:22:30    

une question,dans la clause FROM on peut mètre des nom avec des espace???
car les table on toute des nom a espace....

Reply

Marsh Posté le 01-06-2010 à 11:35:19    

j'ai réussi, problème d'espace...Merci beaucoup

Reply

Marsh Posté le 01-06-2010 à 13:10:41    

Essaie

Code :
  1. select Référence from [Prospects a jour]


ou sinon, entre guillemets.
 
Mais utiliser des noms de colonne/table à espace ou caractères accentués c'est s'exposer à des problèmes de ce genre.


Message édité par charly007 le 01-06-2010 à 13:13:01
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed