Affichage d'une image à partir d'une base de données déja créée.

cs_kibi Messages postés 3 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 14 août 2007 - 13 août 2007 à 18:38
BELDJEBEL Messages postés 16 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 8 mars 2010 - 30 nov. 2007 à 16:14
Bonjour à tous,
J'ai une base de données que j'ai créée sur paradox7 (j'utilise delphi7).
Dans ma base, j'ai un champ appelé IMAGE constituée d'image bmp de chaque enregistrement. Je voudrais dans mon application, afficher une image
dans un objet Timage. Je vous donne le code que j'ai écrit :


 


Var MS : TMemoryStream;


Begin


MS: TMemoryStream.Create;


With Query1 Do


begin


Active :=False;
SQL.Clear;
SQL.Add('Select IMAGE from " Chemin complet de la table" );
ExecSQL;
Active:=True;
End;


Try
TBlobField(Query1.FieldByName('IMAGE')).saveToStream(MS);//Sauver  MS.Position:=0;//On se delplace au debut du stream
Image1.Picture.Bitmap.LoadFromStream(MS);// On affiche l'image
Finally
MS.Free;//Liberer la memoire
end;


end;




J'ai le message suivant:


Le projet rangetest.exe a provoqué une classe d'exception EInvalidGraphic
avec le message Image bitmap incorrecte'. Processus stoppé. Utilisez Pas-pas ou exécuter pour continuer.


S'il vous plaît, j'ai besoin d'aide car cela des jours que je cherche des solutions.
Merci.

4 réponses

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
13 août 2007 à 20:10
Salut !

Ne faudrait-il pas écrire MS := TMemoryStream.Create; (deux points, égal) ? Bizarre que le compilateur accepte ça.
Sinon, tu devrais utiliser la méthode Open() au lieu de ExecSqll et t'assurer que la requette retourne bien un résultat.

A+
Flo

Ressources Delphi, sources, tutoriaux, actu, ...: [www.mx-dev.net www.mx-dev.net]
0
cs_kibi Messages postés 3 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 14 août 2007
14 août 2007 à 09:03
Bonjour,
C'est effectivement MS  : =TMemoryStream.Create; c'est ce que j'ai mis dans le code mais une erreur est survenue en envoyant le message. Merci pour ta reponse,
J'essaierais la methode Open() au lieu de ExecSQL.

Comment peut-on savoir que la requette retourne un resultat?
Merci
0
BELDJEBEL Messages postés 16 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 8 mars 2010 1
23 nov. 2007 à 00:00
Bonsoir,
j'ai le même pb avec Delphi pour lire à partie d'un blob d'une ttable.
J'ai comme message: Image Bitmap incorrecte.
Merci d'avance.
 K.BELDJEBEL.
0
BELDJEBEL Messages postés 16 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 8 mars 2010 1
30 nov. 2007 à 16:14
La solution à ma première question, "Affichage d'une image à partir d'une base de données déja créée", une fois trouvée parait évidente, bien sûr, et même triviale, a été d’utiliser les deux instructions suivantes :



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




(FieldByName('FICHIERPHOTOS') as tblobfield).SaveToFile(Path);



  Image.Picture.Bitmap.LoadFromFile(Path);



 




Avec :


‘FICHIERPHOTOS’ : champ blob,


Var Path :string ;



 




Merci  de m’avoir permis d’accéder et de participer au forum.


K.B.
0
Rejoignez-nous