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

WinDev Discussion :

SQL et enregidtrement de PDF [WD23]


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut SQL et enregidtrement de PDF
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE FIC SET Image=UNHEX('"+BufferVersHexa(imgBuff,SansRegroupement,SansLigne)+"') WHERE ...
    où imgBuff est un buffer
    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
    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
    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
     
    HRAZ("extMonFicDonnées")
    {"extMonFicDonnées.UneRubriqueDuFichier",indRubrique} = valeur
    HAttacheMémo({"extMonFicDonnées",indFichier},"PDF",cheminDuFichier,hMémoImg)
    HAjoute({"extMonFicDonnées",indFichier})
    Voila si ça peut aider.
    Qui vit par le Troll périra par le Troll!

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Je n'ai pas testé (et normalement, ça ne devrait plus exister dans les versions "récentes" de windev) : HAttacheMemo() avec tes indirections.

    Par contre, en SQL pur et dur, je n'ai jamais attaché de fichier binaire dans une base (SQL Server, ORACLE ou autre).
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut
    Bonjour,
    effectivement, ça marche avec les indirections, j'ai édité mon premier message.

    Par contre, pourquoi ça ne devrait plus exister avec les dernières versions? Quel est le soucis?
    Qui vit par le Troll périra par le Troll!

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Il fut un temps, où dans windev, pour attacher un fichier binaire, il fallait faire HAttacheMémo(Produit, Image_Produit, "C:\Images\Produit1.gif", hMémoImg). Un jour, PCSOFT, dans une des 9xx nouveautés d'une version (je ne sais plus laquelle), a permis de faire une affectation directe : Produit.Image_Produit = "C:\Images\Produit1.gif".
    Donc HAttacheMémo() est devenu obsolète, et ne devrait plus être utilisé.
    Sauf que là, dans ton cas, la "nouvelle" syntaxe ne fonctionne pas.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut
    Merci pour les renseignements.
    Heureusement que l'ancienne syntaxe fonctionne toujours
    Qui vit par le Troll périra par le Troll!

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

Discussions similaires

  1. Données SQL a Convertir en PDF
    Par HugoLrt dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/06/2019, 14h21
  2. UDA-SQL-0219 error pdf
    Par xolias dans le forum Cognos
    Réponses: 0
    Dernier message: 30/11/2007, 16h11
  3. [SQL] comment enregistrer un fichier doc ou pdf dans une BD
    Par adilassadi dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 17/05/2007, 17h17
  4. Sauvegarder de fichiers PDF dans une BD SQL-SERVER
    Par nkonito dans le forum Accès aux données
    Réponses: 5
    Dernier message: 14/05/2007, 09h38
  5. SQL SERVER &fichier Pdf
    Par gsquad dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 09/12/2005, 15h39

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