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 :

Erreur sur le composant QRDBImage


Sujet :

Bases de données Delphi

  1. #1
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut Erreur sur le composant QRDBImage
    Bonjour à tous.

    J'ai une table contenant les informations et le logo d'une société sous Firebird.
    Le champs Logo est de type blob.
    Pour tester, j'ai inserer l'image dans le champs Logo avec Ibexpert.
    Si je regarde le contenue du Logo, sous Ibexpert, je vosi bien mon image.
    Le problème réside sur l'utilisation de ce logo sous QuickReport V4.05 avec le composant QRDBImage, j'ai une erreur :
    Le projet a provoqué une classe d'exception EinvalidGraphic avec le message "image bitmap incorrecte".
    J'ai déjà rajouté l'unité JPEG dans la section Uses de la fiche.
    COmment dois proceder.

    Merci
    On progresse .....

  2. #2
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    C'est vrais les compoants orientés données comme DBImage ou QRDBImage ne prennent pas en charge cetains formats d'images. Donc soit tu cherche un composant qui gère ça à ta place et je pense que c'est en free soit tu le gère toi même avec un stream que tu rempli avec le blob de ton champs ensuite tu le met dans un QRImage pas dans un QRDBImage.
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 99
    Points : 98
    Points
    98
    Par défaut afficher un jpeg dans un qrdbimage
    je sais que la discussion date de 2005 mais cette solution pourra peut être apportée des réponses à d'autres personnes.

    voici une approche qui permet de mettre dans un champs d'un clientdataset une image jpeg chargée à partir d'un enregistrement fait dans un champs image d'une table sql server 2000.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
          (* _aq : adoquery
              _ms : tmemorystream
              _jpg : tjpegimage
              _im : timage
              _gf : tgraphicfield d'un clientdataset (blobtype ftgraphic)
          *)
     
          {creation}
          image_ms := TMemoryStream.Create;
          image_jpg := TJPEGImage.Create;
          image_im := TImage.Create(Application);
          {enregistrement de l'image de ma base sql dans un memorystream}
          TBlobField(requete_aq.FieldByName('mon_image')).SaveToStream(image_ms);
          {placement au debut du stream}
          image_ms.Position := 0;
          {enregistrement du memorystream dans un jpeg}
          image_jpg.LoadFromStream(image_ms);
          {enregistrement du jpeg dans un timage bitmap}
          image_im.Picture.Bitmap.Assign(image_jpg);
          {on vide le memorystream}
          image_ms.Clear;
          {enregistrement de mon timage bitmap dans le memorystream}
          image_im.Picture.Bitmap.SaveToStream(image_ms);
          {enregistrement du memorystream dans le clientdataset}
          image_gf.LoadFromStream(image_ms);
          {liberation}
          image_ms.Free;
          image_jpg.Free;
          image_im.Free;
    il suffit ensuite de lier le qrdbimage au champs image_gf du clientdataset.

    si quelqu'un connait une méthode plus optimisée, il ne faut pas hésiter...


  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    Salut

    si tu utilise l'unite GraphicEx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      GraphicClass := FileFormatList.GraphicFromExtension(Extension);
       if GraphicClass = nil then
            raise EInvalidGraphic.CreateFmt('UnknownExtension', [Extension]);
     
       Image1.Picture.Graphic := GraphicClass.Create;
       try
         stream := QueryF_BLOB.DataSet.CreateBlobStream(QueryF_BLOB, bmRead);
          Image1.Picture.Graphic.LoadFromStream(Stream);
          stream.Free;
        except
           Image1.Picture.Graphic.Free;
         raise;
    end;
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. Erreur sur un composant Scalabium
    Par Heremion dans le forum Delphi
    Réponses: 5
    Dernier message: 30/10/2014, 09h19
  2. Réponses: 10
    Dernier message: 07/02/2014, 22h23
  3. Erreur sur le composant TJvComputerInfoEx
    Par rivierebruno22 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 29/02/2012, 18h02
  4. Message d'erreur sur composant DirOpenFile6.ocx
    Par bugsisgood dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/02/2010, 08h45
  5. Erreur sur le TNSListener après installation de 9iAS
    Par Patmane dans le forum Installation
    Réponses: 4
    Dernier message: 04/02/2004, 11h16

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