Affichage d'une image à partir d'une base de données déja créée.
cs_kibi
Messages postés3Date d'inscriptionjeudi 29 mars 2007StatutMembreDernière intervention14 août 2007
-
13 août 2007 à 18:38
BELDJEBEL
Messages postés16Date d'inscriptionjeudi 22 novembre 2007StatutMembreDerniè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.
A voir également:
Affichage d'une image à partir d'une base de données déja créée.
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 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.
cs_kibi
Messages postés3Date d'inscriptionjeudi 29 mars 2007StatutMembreDernière intervention14 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
BELDJEBEL
Messages postés16Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 8 mars 20101 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.
BELDJEBEL
Messages postés16Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 8 mars 20101 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.