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 :

Ajout/modif d'une table d'une BD en relation avec une autre


Sujet :

JDBC Java

  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut Ajout/modif d'une table d'une BD en relation avec une autre
    Bonsoir!!

    J'ai encore une nouvelle chose à apprendre..
    Je viens de rencontrer un problème lors d'ajouts dans d'enregistrements dans ma base de donnée..(ACCESS)
    J'arrive à ajouter sans problème dans n'importe quelle table sauf celle qui sont en relation avec une autre..
    Alors j'ai ce message lorsque j'essaye..
    [citation]
    java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access]Fonction optionnelle non installée[/citation]

    Est-ce que quelqu'un pourrait m'éclairer..
    D'avance merci !

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Fait voir la requête ...

    Tu devrais chercher sur le site de Microsoft directement je pense ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Bonjour,
    Voici la table dans laquelle j'essaye d'ajouter un article (acc1.jpg)
    Et la relation entre les deux tables (acc2.jpg)

    J'ai recherché pas mal mais pas facile de tomber sur des utilisateurs d'une BD access
    Images attachées Images attachées   

  4. #4
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par in Voir le message
    Fait voir la requête ...
    Montre nous aussi le code qui te déclenche l'exception ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  5. #5
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     maBonneDate =  maDate.gc.getTime();
      maBD.ajoutMembre(this);
    Et la méthode ajoutMembre :
    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
     
     public void ajoutMembre(FenVendre fen)
           {
        	   String insertMembre="insert into Article (titre_art,info_art,cat_art,prix_art,frais_art," +
    	   		"idvend_art,date_in,nbjour_art) VALUES(?,?,?,?,?,?,?,?)";
        	   PreparedStatement statement=null;
        	   try {
    			statement= conn.prepareStatement(insertMembre);
    			statement.setString(1, fen.query.getText());
    			statement.setString(2, fen.infos.getText());
    			statement.setString(3, fen.choix);
    			statement.setInt(4,100 );
    			statement.setInt(5, 10);
    			statement.setLong(6, fen.moi.id);
    			statement.setDate(7, new java.sql.Date(fen.maBonneDate.getTime()));
    			statement.setInt(8, fen.nbJours);
    			statement.execute();
     
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    Pas de probleme de compil , seulement lorsqu'il passe par là à l'execution :/

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    l'erreur elle arrive sur le prepareStatement ou sur le execute ?

    As tu essayé d'utiliser la méthode executeUpdate plutot ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  7. #7
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    En faite, l'erreur se produit au niveau du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    statement.setLong(6,fen.moi.id);
    Maintenant, lorsque je retire cette ligne et que dans l'insert je retire idvend_art ..
    Alors l'erreur ce produit sur le statement.execute(); et voici alors le message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'Personnes'.
    (logique).
    J'espere que ça peut vous éclairer ^^
    Merci de votre attention !

  8. #8
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par libuma Voir le message
    En faite, l'erreur se produit au niveau du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    statement.setLong(6,fen.moi.id);
    Pourquoi être si avare en information ?

    fen.moi.id est bien de type long ?
    Et dans ta base c'est quel type cette colonne ?

    Peux tu essayer de tester cette valeur avant de faire le set pour vérifier si elle est correcte ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  9. #9
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par in Voir le message
    Pourquoi être si avare en information ?

    fen.moi.id est bien de type long ?
    Et dans ta base c'est quel type cette colonne ?

    Peux tu essayer de tester cette valeur avant de faire le set pour vérifier si elle est correcte ?
    Je ne suis pas avare! Le problème est qu'ici je suis sur un poste de travail où je n'ai pas accès à internet à partir de mon portable(le prog s'y trouve) et je ne peux pas le transférer ici non plus.. désolé

    Soit, je viens de retester fen.moi.id avec l'utilisateur numéro deux , ça me renvoie bien 2 (vous pouvez trouver une image de la BD un peu plus haut dans un de mes postes avec le nom acc1.jpg).

    Dans la base de donnée , il s'agit d'un type NUMERIQUE - Entier Long.
    Sous éclipse , il s'agit d'un type long.

  10. #10
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Je n'ai jamais essayé Access mais bon ...

    essaie en faisant un setInt ou un setObject pour voir ...

    PS : quand je dis avare c'est une boutade ... mais quand même plus de 24 heures pour que tu nous dises sur quelle ligne se produit l'erreur ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  11. #11
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par in Voir le message
    Je n'ai jamais essayé Access mais bon ...

    essaie en faisant un setInt ou un setObject pour voir ...

    PS : quand je dis avare c'est une boutade ... mais quand même plus de 24 heures pour que tu nous dises sur quelle ligne se produit l'erreur ...

    Meme resultat avec setObject..
    Mais par contre lorsque je mets tout en INT , pas de soucis ! oO

    Pourtant j'ai bien un Entier long dans ma BD..
    Aurais-tu une explication?

    En tout cas merci pour ton aide !

  12. #12
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par libuma Voir le message
    Aurais-tu une explication?
    Non .. peut-être que la représentation d'un "long" dans Access correspond plus à à int au niveau de jdbc ... bref, Microsoft quoi

    Sinon, n'oublie pas de faire un commit si besoin et pense à fermer ton preparedStatement dans une clause finally ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/05/2013, 15h37
  2. Réponses: 5
    Dernier message: 28/11/2011, 14h47
  3. Réponses: 3
    Dernier message: 15/10/2010, 11h18
  4. Réponses: 3
    Dernier message: 05/02/2010, 03h45
  5. Réponses: 1
    Dernier message: 26/03/2008, 22h19

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