Bonjour,
j'ai créé un projet avec une base de données qui permettra de stocker des pdf dans une rubrique de type Image mémo binaire.
J'ai créé à côté un utilitaire qui va scruter un répertoire et enregistrer dans la base de données ci-dessus les pdf qui arrivent dans le répertoire. Cet utilitaire n'a pas d'analyse et accède aux fichiers de données de la base de données via HDeclareExterne.
Je rencontre un soucis pour l'import du fichier pdf dans la base.
J'avais déjà réalisé un outils similaire pour enregistrer des images
où imgBuff est un buffer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE FIC SET Image=UNHEX('"+BufferVersHexa(imgBuff,SansRegroupement,SansLigne)+"') WHERE ...
Cette façon fonctionnait bien avec des images mais la fonction BufferVersHexa me revoie un résultat trop long pour la chaine qui contient la requete sql.
J'ai essayé les fonctions HAjoute et Hmodifie avec les opérateurs d'indirection, l'enregistrement est bien fait mais je n'ai rien dans la rubrique Pdf.
Avez-vous déjà réussi à enregistrer un pdf dans une base de données Hyperfile avec une de ces deux méthodes ou est-ce qu'il y en a une encore plus simple que j'ai loupée?
je vous remercie
Edit:
bon en fait ça fonctionne avec les indirections, mais comme mon fichier est un pdf, il n'est pas visible dans le centre de contrôle hyperfile.
si ça peut intéresser quelqu'un, voila comment ça marche
Dand l'initialisation du projet, faire l'ouvreture de la connexion comme habituellement puis déclarer les fichiers de données utilisés
Et dans le code pour ajouter le pdf dans la base de données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 maConnexion est une Connexion maConnexion..Utilisateur = maConnexion..MotDePasse = maConnexion..Serveur = maConnexion..BaseDeDonnées = "FusionneBL" maConnexion..Provider = hAccèsHFClientServeur maConnexion..Accès = hOLectureEcriture maConnexion..OptionsCurseur = hCurseurClient SI PAS HOuvreConnexion(maConnexion) ALORS Erreur("impossible d'ouvrir la connexion",HErreurInfo()) FIN HDéclareExterne("NomFicDonnées.FIC","extMonFicDonnées",maConnexion) //on déclare utiliser le fichier NomFicDonnées.FIC qu'on appellera extMonFicDonnées
Voila si ça peut aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 HRAZ("extMonFicDonnées") {"extMonFicDonnées.UneRubriqueDuFichier",indRubrique} = valeur HAttacheMémo({"extMonFicDonnées",indFichier},"PDF",cheminDuFichier,hMémoImg) HAjoute({"extMonFicDonnées",indFichier})
Partager