Bonjour tout le monde,

Je possède une base de données SQLite, liée à Delphi via un ODBC, et dans laquelle des images bitmap sont stockées.

J'aimerais récupérer ces images sous forme de tableau de byte dans Delphi pour pouvoir par la suite des enregistrer dans un document XML.

Je rencontre un problème lors de la lecture des données

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
 
Type
    TAOF = Array Of Byte;
 
Var
   ByteArr : TAOF;
   BytesImage : TBytesField;
 
...
 
//Requête sur wwQuery1 : SELECT BLOBIMAGE FROM TEST
 
     wwQuery1.First;
 
     BytesImage:=wwQuery1.FieldByName('BLOBIMAGE') As TBytesField;
     SetLength(ByteArr,BytesImage.DataSize);
     BytesImage.GetData(ByteArr);
La propriété BytesImage.DataSize retourne 128 bytes alors que le bitmap chargé dans le champ BLOBIMAGE a une taille d'environ 2Ko.

Comment cela se fait-il? Comment puis-je charger la totalité du champ bytes?

J'ai pensé à une sorte de compression au moment du stockage de l'image dans SQLite mais comme dans Delphi, l'image apparaît au format Bytes, comment décompresser le tout?

Merci d'avance