Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème base de données [ Système / JDBC ] (fredou30)

lundi 22 janvier 2007 à 16:42:48 | Problème base de données

fredou30

Bonjour,
j'ai conçu un programme qui permet de gérer des clients grâce à une base de données. Mais il arrive que je perd des séries de clients rentré et je ne comprend pas pourquoi.

Voici le code utilisé pour le chargement des clients en mémoire:

static public void load(){
  int compteur = 0;
  String url = "jdbc:odbc:gestion";
  try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   
   //Variable de connexion
   Connection con = null;
   //Connexion
    con = DriverManager.getConnection(url,"","");
   
    //Création de la requête
    Statement requete = con.createStatement();
   
    //Sélection des résultats
    ResultSet resultat = requete.executeQuery("SELECT * FROM clients"); 
 
       //Enregistrement dans la classe Gestion
         while (resultat.next()) {
             Gestion.tabNom[compteur] = resultat.getString(2);
             Gestion.tabAdresse[compteur] = resultat.getString(3);
             Gestion.tabTelBur[compteur] = resultat.getString(4);
             Gestion.tabTelMaison[compteur] = resultat.getString(5);
             Gestion.tabTelCell[compteur] = resultat.getString(6);
             Gestion.tabDateDernierRV[compteur] = resultat.getString(7);
             Gestion.tabNumDossier[compteur] = resultat.getString(8);
             Gestion.tabSexe[compteur] = resultat.getString(9);
             Gestion.tabDateNaissance[compteur] = resultat.getString(10);
             Gestion.tabVille[compteur] = resultat.getString(11);
             Gestion.tabCodePostal[compteur] = resultat.getString(12);
             Gestion.tabProvince[compteur] = resultat.getString(13);
             Gestion.tabParent[compteur] = resultat.getString(14);
              
               compteur++;
             }   
        
         con.close();
  }catch(SQLException e){
   //Erreur de commande
   e.printStackTrace();
  }
  catch(ClassNotFoundException e){
   //Erreur lors du chargement du driver
   e.printStackTrace();
  }
 }

Voici le code utilisé pour enregistré les clients dans la base:

static public void write(int indiceWrite){
  String url = "jdbc:odbc:gestion";
  try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  }
  catch(ClassNotFoundException e){
   //Si erreur lors du chargement du driver
     e.printStackTrace();
  }
  try{
  Connection con = null;
  //Connexion
   con = DriverManager.getConnection(url,"","");
   //Création de la requête
   Statement requete = con.createStatement();
  
   //Ajout du nouveau client dans la table clients
//On ajoute chaque champs saisie dans la classe Gestion
    requete.executeUpdate("INSERT INTO clients (nom,adresse,telBur,telMaison,telCell,dateDernierRV,numDossier,sexe,dateNaissance,ville,codePostal,province,parent) VALUES ('" + Gestion.tabNom[indiceWrite] + "','" + Gestion.tabAdresse[indiceWrite] +
          "','" + Gestion.tabTelBur[indiceWrite] + "','" + Gestion.tabTelMaison[indiceWrite] + "','" + Gestion.tabTelCell[indiceWrite] + "','" + Gestion.tabDateDernierRV[indiceWrite] + "','" + Gestion.tabNumDossier[indiceWrite] + "','" + Gestion.tabSexe[indiceWrite] +
          "','" + Gestion.tabDateNaissance[indiceWrite] + "','" + Gestion.tabVille[indiceWrite] + "','" + Gestion.tabCodePostal[indiceWrite] + "','" + Gestion.tabProvince[indiceWrite] + "','" + Gestion.tabParent[indiceWrite] + "')");

       //Fermeture de la connexion
         con.close();
  
  }
  catch(SQLException e){
   //Erreur de commande
   e.printStackTrace();
  }
 }

Merci de m'aider


lundi 22 janvier 2007 à 21:04:03 | Re : Problème base de données

Ombitious_Developper



Salut:

Petite remarque conceptuelle:

-> Tu dois appeler ce code une seule fois.

Donc tu dois le faire dans un bloc static ou au début du main.

 try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  }
  catch(ClassNotFoundException e){
   //Si erreur lors du chargement du driver
     e.printStackTrace();
  }

__________________________________________________________
A.B. :  Je vais apprendre et apprendre et apprendre ....


mardi 23 janvier 2007 à 18:50:26 | Re : Problème base de données

JBAware

Ca serait pas un problème de commit?

essaye dans ta classe write :

Connection con = null;
  //Connexion
   con = DriverManager.getConnection(url,"","");
   //Création de la requête

      con.setAutoCommit(true);

ou

con.commit();
//Fermeture de la connexion
con.close();

avant de fermer ta connection.

JB...


mardi 23 janvier 2007 à 19:00:36 | Re : Problème base de données

fredou30

À quoi sa sert le commit ???

mardi 23 janvier 2007 à 19:04:54 | Re : Problème base de données

JBAware

A valider/confirmer tes requetes du genre insert/update/delete.
Tant qu'elles ne sont pas "commitées" les transactions (requetes) ne sont pas enregistrées physiquement dans la base

JB...


samedi 3 février 2007 à 13:39:53 | Re : Problème base de données

helia_5006

Bonjour,
J'ai exactement le même problème que fredou30.
J'ai donc placé setAutoCommit(true) juste après la connection à la base MySQL. Mais lorsque j'exécute une requête INSERT ou UPDATE, que j'appelle ensuite commit(), JDBC me renvoit une exception me disant que je ne dois pas appeler commi() si AutoCommit est à TRUE.

Ce faisant, j'ai regardé la doc. J' ai passé FALSE à setAutoCommit() à false ; après chaque requête, j'appelle commit(), mais non, rien à faire, les données ne sont pas enregistrées physiquement dans ma base.

De l'aide svp.... merci

jeudi 15 février 2007 à 23:06:02 | Re : Problème base de données

fredou30

Salut je crois que sa ne te sert à rien de faire commit( ) apres chaque requete.
En fesant setAutoCommit( ) il devrait le faire automatiquement, donc pas besoin de la rappeler.

Je crois qu'il est préférable d'utiliser setAutoCommit( ) au lieu de faire commit( ) apres chaque requetes.



Cette discussion est classé dans : compteur, gestion, resultat, getstring, indicewrite


Répondre à ce message

Sujets en rapport avec ce message

resultat requete SQL et TextArea JAVA [ par oceane751 ] bonsoir à tous !! est ce que c'est possible de mettre le resultat d'une requete SQL dans un TextArea?parce que là le resultat s'affiche dans un Joptio class cast exception [ par ahmedoo ] salut j'ai un probleme avec la methode setText() de JTextfield ,en fait quand j'essaye de modifier le text par setText() elle génere une exceptionn cl probleme connexion java - access [ par julo56 ] voici mon code source : import java.util.Vector; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq problème rappatriement de données [ par Tom2300 ] Bonjour,je teste en java le rappatriement de données d'une base MySQL dans une liste/tableau type VECTORvoici le code :------------------------------- erreur JDBC : table/alias : 'num' non unique [ par oceane751 ] bonjour, voila j'ai une erreur qui apparait lorsque je lance mon programe qui est censé supprimer un client (requete delete) dans une bdd MYSQL erreur [J2ME]Gestion du stylet [ par grumli ] bonjour, je recherche les classes java sous J2ME (et de préférence sous la config CLDC) pour la gestion du stylet, action sur les widgets, écriture m afficher base de donnée sql dans une Jtable [ par Snyve ] Bonjour à tous !Je suis un débutant en java. J'utilise Netbeans.J'ai créer un programme java qui récupère les informations d'une base de donnée et les Gestion de statistiqueq au sein d'un réseau Gprs [ par nizou22 ] Bonjour ,  je viens de commencer un stage, et je suis pas un dévellopeur, car j'ai choisi option réseau et télécom.....Franchment je demande votre aid Calcul integrale [ par developvbdebut ] Bonsoir tout le mondeJ'ai un projet de calcul integrale à faire.Voici le calcul en mats.e^x =1 - x/1! + x²/2! Je ne comprend pas grand choses en maths un programme de gestion des comptes bancaires [ par aya22 ] un comte bancaire est identifie par un numéro de compte ce numéro de compte est un entier positif permettant de désigner et distinguer sans ambiguité


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.