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

Lazarus Pascal Discussion :

Persistance d'images dans des cellules de StringGrid à partir d'un champ PostgreSQL.ByteA ou TEXT [Lazarus]


Sujet :

Lazarus Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Persistance d'images dans des cellules de StringGrid à partir d'un champ PostgreSQL.ByteA ou TEXT
    Bonjour,

    Après une petite "cessation d'activité" en Lazarus, je m'y recolle.

    J'ai un problème toujours non résolu qui m'agace vraiment. Je stocke des images [png 24*24] dans ma base de données PostgreSQL distante. Le serveur est hébergé, ne dispose pas de ftp et évidemment aucun protocole SMB/CIFS n'est envisageable.

    Les images de la table sont affichées dans des StringGrids. J'utilise les connecteurs natifs de Lazarus mais le problème serait identique en Zeos ou autre. L'insertion est classique :
    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
      Strm := TMemoryStream.Create;
      imgSrc.Picture.SaveToStream(Strm);
      with pgQuery do try
      [...]
         with SQL, Params do begin
           Clear;
           SQL.Text := 'INSERT INTO test2013 '+
                       '(teid, tenom, teimage) '+
                       'VALUES ' +
                       '(:paID, :paNOM, :paIMAGE);';
           ParamByName('paID').AsString  := AleaString();
           ParamByName('paNOM').AsString := 'TEST Numéro 1';
           ParamByName('paIMAGE').LoadFromStream(Strm, ftBlob);
         end;
         ExecSQL; 
      [...]
    La lecture l'est tout autant. Elle utilise également un Stream.

    Pour le StringGrid, j'ai une méthode trop compliquée et visiblement mal adaptée.
    J'aurais voulu dans un premier temps stocker le Stream dans une Cell[aImg, aRow] lors du chargement de la table. Mais c'est impossible car les Cells ne sont pas des strings mais des strings C (autrement dit le caractère Null équivaut à une fin de chaîne et le stream d'une image ne contient pas qu'un caractère Null...). J'ai pensé un moment utiliser un ImageList mais mes id ne sont pas numériques (mais alphanumériques) et donc les correspondances peu aisées... Les refresh des TStstingGrids sont assez "périlleux".

    Bref, quelqu'un a-t-il une solution correcte à ce problème ?

    Merci. Cordialement. Gilles
    Dernière modification par Invité ; 13/04/2013 à 19h00. Motif: Titre plus explicite

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/01/2015, 08h27
  2. Ranger des images dans des cellules définies
    Par bobafric dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/07/2013, 09h34
  3. ajouter des combobox dans les cellules de stringgrid
    Par sky88 dans le forum Débuter
    Réponses: 5
    Dernier message: 22/01/2009, 18h35
  4. pbl image dans une cellule
    Par UNi[FR] dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/08/2006, 12h54

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