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

  FORUM HardWare.fr
  Programmation
  Java

  Requete SQL à une base Access depuis JAVA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete SQL à une base Access depuis JAVA

n°1163995
Torm13
Posté le 28-07-2005 à 22:01:49  profilanswer
 

Bonjour à tous,
J'ai un problème pour accéder à une base de données Access depuis JAVA que je n'arrive pas à résoudre depuis plusieurs jours.
Pour me connecter et lire la table pas de problème, ce code fonctionne très bien :

Citation :


import java.sql.*;
public class bdd {
 public static void main(String[] args) {
  try {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  } catch (ClassNotFoundException e1) {
   e1.printStackTrace();
  }
   
  String url = "jdbc:odbc:whist_db";
 
  Connection con = null;
  try {
   con = DriverManager.getConnection(url);
  } catch (SQLException e1) {
   e1.printStackTrace();
  }
   
  String query = "SELECT * FROM joueurs";
  ResultSet results2;
 
  try {
   Statement stmt = con.createStatement();
   results = stmt.executeQuery(query);
   ResultSetMetaData rsmd = results.getMetaData();
   int nCols = rsmd.getColumnCount();
   boolean encore = results.next();
   while(encore)
   {
    for(int i = 1; i <= nCols; i++)
    {
     System.out.print(results.getString(i) + "  " );
    }
   System.out.println();
   encore = results.next();
   }
   results.close();
  }
 
  catch(Exception e){
   System.out.println("Erreur : " + e.getMessage());
  }
 }
 
}


 
Par contre il m'est impossible d'insérer un enregistrement dans la table. Voici mon code :

Citation :


import java.sql.*;
public class bdd2 {
 public static void main(String[] args) {
  try {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  } catch (ClassNotFoundException e1) {
   e1.printStackTrace();
  }
   
  String url = "jdbc:odbc:whist_db";
 
  Connection con = null;
  try {
   con = DriverManager.getConnection(url);
  } catch (SQLException e1) {
   e1.printStackTrace();
  }
   
  String query = "INSERT INTO joueurs VALUES (2,'Jean','Jaques') ";
  int results = 0;
 
  try {
   Statement stmt = con.createStatement();
   results = stmt.executeUpdate(query);
  }
  catch(Exception e){
   System.out.println("Erreur : " + e.getMessage());
  }
 }
}


 
Bref, je n'ai aucun problème pour lire les données de la base de données (partie 1) mais impossible d'y enregistrer des données (partie 2)
Qqun saurait-il me dire ce qui ne va pas svp ?


Message édité par Torm13 le 28-07-2005 à 23:45:41
mood
Publicité
Posté le 28-07-2005 à 22:01:49  profilanswer
 

n°1164000
the real m​oins moins
Posté le 28-07-2005 à 22:06:54  profilanswer
 

oui, toi, en commençant par dire quel est le problème.

n°1164123
Torm13
Posté le 28-07-2005 à 23:47:07  profilanswer
 

Edit du post : en fait j'arrive sans problème à lire les données de la base mais impossible d'y enregistrer quoi que ce soit !

n°1164132
the real m​oins moins
Posté le 28-07-2005 à 23:53:22  profilanswer
 

ça tu l'as déjà dit, oui.
* on a pas ta db  
* on a pas le message d'erreur ni rien qui puisse dire quel est vraiment le probleme.
* on a pas de boule de crystal
 
:/

n°1164401
Torm13
Posté le 29-07-2005 à 10:54:35  profilanswer
 

La db est composée d'une table "joueurs", cette dernière comporte 3 champs :
id (int)
joueur1 (texte)
joueur2 (texte)
 
Le plus embetant est qu'il n'y a pas de message d'erreur. Quand j'execute le script 2, results vaut 1 (donc un enregistrement a bien été introduit dans la base), mais en ouvrant la base je ne vois pas le nouvel enregistrement et en executant le script 1 non plus...
 
Je pensais que ca venait pe du fait que la requete SQL ne soit pas compatible avec Access, étant donné que j'ai copié le reste d'un livre sur JAVA...
 
Si vous avez d'autres questions n'hésitez pas, je ne sais pas trop quoi dire de plus  :??:


Message édité par Torm13 le 29-07-2005 à 10:57:03
n°1164506
chichos
Posté le 29-07-2005 à 11:41:28  profilanswer
 

Torm13 a écrit :

La db est composée d'une table "joueurs", cette dernière comporte 3 champs :
id (int)
joueur1 (texte)
joueur2 (texte)
 
Le plus embetant est qu'il n'y a pas de message d'erreur. Quand j'execute le script 2, results vaut 1 (donc un enregistrement a bien été introduit dans la base), mais en ouvrant la base je ne vois pas le nouvel enregistrement et en executant le script 1 non plus...
 
Je pensais que ca venait pe du fait que la requete SQL ne soit pas compatible avec Access, étant donné que j'ai copié le reste d'un livre sur JAVA...
 
Si vous avez d'autres questions n'hésitez pas, je ne sais pas trop quoi dire de plus  :??:


 
Il te manquerait pas un close() que ta "Connection" ?  ;)  
Les changements dans ta base sont effectifs à ce moment là si je ne m'abuse !
 
Tiens, je te file un lien net qui m'avait l'air pas mal du tout :
http://www.oreilly.com/catalog/jav [...] /ch04.html
 
Le code fourni a l'air moins crado.
 
a+
 

n°1164536
Torm13
Posté le 29-07-2005 à 11:57:10  profilanswer
 

Aaaaaaaaaah MERCIIIIIII !!!!!  :pt1cable:  :pt1cable:  :love:  :love:  
Ouf ca fait un bout de temps que je cherchais cmt faire et tout ca à cause d'un close !  :non:  
En tout cas un grand merci à vous 2 !!  :bounce:  


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

  Requete SQL à une base Access depuis JAVA

 

Sujets relatifs
unique sur 2 champs en Access[Besoisn conseils] Quel outil pour creation base de donnée
enregistrement resultat requete dans un champ?[VBA] Access, probleme de requete
requête originale.. mais est ce faisable ?[RESOLU] Ouvrir un document Word déjà existant avec Access 97
Récuperer le résultat d'une requête sql[RESOLU] [MySQL] Requête avec conditions
menu deroulant (java script et CSS) 
Plus de sujets relatifs à : Requete SQL à une base Access depuis JAVA


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