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

XMLRAD Discussion :

Récupérer un blob


Sujet :

XMLRAD

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut Récupérer un blob
    Bonjour,

    Y-a un moyen pour récupérer dans Delphi le contenu d'un champ blob d'une requete, par exemple sous la forme d'un TStream afin de pouvoir le traiter ?

    Merci
    Jean-Pierre
    JP

    N'ayez pas peur de la perfection, vous ne l'atteindrez jamais !
    Salvador Dali

  2. #2
    Membre actif Avatar de Jeweller
    Inscrit en
    Août 2003
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 357
    Points : 278
    Points
    278
    Par défaut
    Il y a plusieurs solutions, sans que l'une soit plus idéale qu'une autre... Tout dépend aussi que ce qu'il contient.

    La premiere consiste à ne pas utiliser de blob mais des types chaines de caractères...

    La deuxième consiste à convertir le champ en question en chaine de caractères (si celui-ci contient biensur du texte) dès la requete SQL. Sous SQLServer ca donnerait un truc dans ce gout:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONVERT(VARCHAR(8000), CONVERT(VARBINARY(8000), MON_CHAMP_BLOB)))
    La requete est utilisable depuis un xmlrgram, mais cela a le gros inconvenient de fixer ton code à un type de SGBD en particulier! Pas génial!

    La dernière solution que je vois consiste à utiliser sous delphi un autre middleware d'accès à la BDD qui le permet. Si tu utilises ADO par exemple, le principe est de connecter un TADODataset (en récupérant le chaine de connexion depuis le curseur Datasources biensur) et de l'utiliser pour récupérer ton champ BLOB. Tu peux ainsi attaquer le champ qq soit son contenu (fichiers, images, texte, ...). En encapsulant cela proprement dans un composant par exemple cela fonctionne bien... en tout cas c'est la meilleure solution que j'ai pu trouver...

    Michael

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Merci de ta réponse.

    Actuellement, je suis avec Interbase, et la solution intermédiaire que j'ai trouvé, c'est d'utiliser une UDF qui enregistre le blob dans un fichier temporaire, que je charge ensuite ...

    Après, la solution de la deuxième connexion est attrayante, il faut que je teste si le temps de connexion est pas trop long.

    Merci
    JP

    N'ayez pas peur de la perfection, vous ne l'atteindrez jamais !
    Salvador Dali

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

Discussions similaires

  1. [MySQL] Récupérer image BLOB
    Par b_zakaria dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 16/03/2009, 23h09
  2. Récupérer un Blob d'une BDD ?
    Par optibonus dans le forum Langage
    Réponses: 1
    Dernier message: 28/04/2008, 00h07
  3. Récupérer un blob
    Par identifiant_bidon dans le forum Services Web
    Réponses: 2
    Dernier message: 14/11/2007, 07h58
  4. [SQL] Récupérer un BLOB avec php
    Par identifiant_bidon dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 06/11/2007, 12h24
  5. Réponses: 1
    Dernier message: 13/04/2007, 08h48

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