Comment récupérer le path total d'un objet enregistré dans un champ de type "piè [Résolu]

Signaler
Messages postés
16
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
5 novembre 2009
-
Messages postés
16
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
5 novembre 2009
-
Bonjour tout le monde,

Je développe depuis des jours une application de gestion d'une école en Java Netbeans 6.1 et avec MS Access 2007.

J'ai créé la base de données dont une table est composée d'un champ de type "pièce jointe" ainsi que d'autres champs.

J'ai pu coder en Java des instructions permettant de sauvegarder, dans ce champ de type "pièce jointe", les photos d'identité des élèves à partir du disque dur.

Mais le problème que mon application doit aussi pouvoir récupérer la path ou le chemain physique de chaque photo sur le disque dur, au moment où je désire afficher les informations relatives à chaque élève. Car il est seulement possible de récupérer le nom de la photo mais pas son path, lorsqu'on écrit la requête "SELECT photo FROM nomTable;"

Je n'arrive pas à savoir comment récupérer le path ou bien le chemin physique total d'une photo (ou bien d'un objet en général) enregistrée dans un champ de type "pièce jointe" d'une table MS Access 2007?

J'ai cherché par tout sur le net sans aucun résultat...
S"il vous plait, quelqu'un a une idée comment résoudre ce problème?
Merci..

5 réponses

Messages postés
16
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
5 novembre 2009

Merci Rorix83, ton idée m'a inspiré d'une meilleure solution.

En fait, j'ai tout fouillé dans la documentation Access 2007 et je n'ai trouvé aucune indication qui montre s'il est possible d'ajouter une pièce jointe à la base Access à travers une requête SQL, à moins qu'on ouvre la base.accdb et qu'on aille directement directement au champ pour l'ajouter manuellement et non pas à travers un code d'un langage de programmation.

Ce que j'ai fait est le suivant:
J'ai enlevé le champ de type pièce jointe de la table de ma base et je l'ai remplacé par deux autres de type texte; un pour le nom et le type de la photo, et le deuxième est pour stocker son path entier.
Bien sur avec quelques modifications au niveau du code, le tour a été joué.

Encore une fois merci pour toi de votre aide Rorix83, et bon weekend.
Messages postés
18
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
26 décembre 2008

Je ne connais pas MS Access, néanmoins j'ai travaillé avec d'autres SGBD.

Une solution possible serait d'enregistrer toutes tes photos dans le même dossier.
(tu peux concaténer la valeur renvoyée par la fonction time() au nom de ta photo).

Pour le Path, tu aura a définir une constante qui sera le chemin du dossier choisi.
Messages postés
16
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
5 novembre 2009

Merci Rorix83 de m'avoir répondu à mon sujet.

Bon, pour le path, j'ai déjà définit une constante de type chaine de caractères que j'ai stocké le path (que j'ai choisi) dedans. Mais, le problème c'est qu'avec cette solution, l'utilisateur ne sera pas libre de choisir le path où il veut stocker ses photos sur son disque dur.
J'aime bien savoir comment peut-on récupérer le path de toute photo du moment où l'on accède à son champ dans la base (Microsoft Access) avec la requête SELECT. Car comme j'ai dis au dessus, la requête SELECT pour un champ de "pièce jointe" ne permet de renvoyer que le nom de l'objet du même type, mais pas tout son path.

Merci
Messages postés
18
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
26 décembre 2008

En stockant le path dans un nouvel attribut?
Messages postés
16
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
5 novembre 2009

Merci,

Je vais essayer ton idée Rorix83, mais, à propos de la fonction time() que tu m'as proposé une solution avec. Je ne l'ai jamais utilisée cette fonction. Je ne connais pas son rôle. C'est pour cela que je n'ai pas compris ce que tu m'as proposé.

Merci bien Rorix83