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

Bases de données Delphi Discussion :

Problème avec un Blob Image


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Problème avec un Blob Image
    Bonjour,

    J'enregistre correctement une Bitmap dans un champ Blob déclaré dans la table : 'MON_IMAGE BLOB NOT NULL'
    Comme il s'agit d'une grosse image (30Mo) je peux vérifier l'augmentation de la taille de la BD elle est Ok
    A la lecture j'ai un problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     (qry.FieldByName('MON_IMAGE') as tBlobField).SaveToStream(Stream);
     StSize:= Stream.size;// retourne la taille correcte de la Bitmap 30Mo
     BMP.LoadFromStream(Stream);
     BtWidth:= BMP.Width;// BtWidth = 0 !!!!!!!!!
    Remarques :
    - Ouverture correcte de l'IBQuery qry.RecordCount = 1
    - stream est déclarée TMemoryStream et créée
    - BMP (TBitmap) correctement créée pixelFormat = pf24bit

    Que se passe-t'il ?

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 735
    Points : 25 644
    Points
    25 644
    Par défaut
    Tient, j'ai traité cela ICI

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BMP.Assign(TBlobField(qry.FieldByName('MON_IMAGE')));

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ca ne marche pas
    Ca ne marche pas car l'image n'a pas été enregistrée à partir de Bitmap mais à partir d'un MemoryStream lui même obtenu par un bitmap...
    C'était la seule façon de pouvoir utiliser une procédure stockée pour poster un enregistrement qui contenait une image dans un champ BLOB.

    Donc le champ 'MON_IMAGE' ne contient pas un bitmap mais un stream.

    Mais j'ai trouvé comment corriger le problème il suffisait d'ajouter
    Steam.Position:= 0;
    avant de charger le Sream dans le BMP

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 735
    Points : 25 644
    Points
    25 644
    Par défaut
    Effectivement, le coup du Seek(0) sur le Stream, je l'oublie tout le temps, et pourtant combien de fois l'ai-je fait (dans une appli sur laquelle je travaille c'est des gros XML qui sont stockés) ...

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    J'arrive pas a inserer une image dans une table paradox7.
    j'ai essayé les codes presents sur cette page mais le résultat est nulle.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Réponse à la question PARADOX
    Je suis navré mais je ne travaille pas avec PARADOX...
    Peut-être que ton image est trop grande ? Avec Access par exemple la taille des blobs est limitée.

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 735
    Points : 25 644
    Points
    25 644
    Par défaut
    Fouad, essaye plutôt avec Paradox, de copier l'image dans une sous répertoire de la base de données (si tu passe par un alias, utilise la méthode Session.GetAliasNames pour avoir la correspondance BDE), et tu ne stockes QUE le nom du fichier (sans le chemin puisque stocker dans un sous répertoire, tu peux ajouter des sous-sous-répertoire et donc stocker partillement le chemin)

    Sur le forum, cela a été traité assez souvent, un code similaire fonctionne avec PARADOX, voir ICI

    Effectivement, je me suis fait avoir récemment, mon blob MySQL était trop petit (65Ko), j'ai du l'agrandir (bon, je ne suis pas fan de cette méthode, et je conseille dans ce cas, de ne faire des tables qui ne contiennent que
    ID AutoInc, ID clé etrangère, BLOB ... ainsi on ne peut que le blob et pas les données utiles, ...

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

Discussions similaires

  1. Problème avec position d'image dans un while()
    Par damigr dans le forum Langage
    Réponses: 1
    Dernier message: 08/04/2008, 01h46
  2. Problème avec les Boutons Image
    Par abdoing dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/06/2007, 11h35
  3. problème avec img_mc.loadMovie("image.jpg")
    Par cyraile dans le forum Intégration
    Réponses: 2
    Dernier message: 15/01/2007, 15h38
  4. [FLASH MX2004] Problème avec apparition d'images progressifs !
    Par °°° Zen-Spirit °°° dans le forum Flash
    Réponses: 6
    Dernier message: 18/05/2006, 09h58
  5. [Mail] Problème avec mail et image
    Par phpaide dans le forum Langage
    Réponses: 5
    Dernier message: 27/04/2006, 10h06

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