![]() |
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Bild über TImage aus der Datenbank holen?
Hallo
ich habe ein TImage und möchte drüber aus der Datenbank ein Bild anzeigen lassen. Das Bild ist in der Datenbank so gespeichert: C:\Image.jpg Wie bekomme ich das hin? |
Re: Bild über TImage aus der Datenbank holen?
Hier mal ein Beispiel aus einem Testprojekt von mir (deshalb die blöden Bezeichner):
Delphi-Quellcode:
[edit] Oder ist nur der Pfad in der DB abgelegt? [/edit]
procedure TFrmMain.LoadPic;
var Stream: TStream; aJPG: TJPEGImage; begin ZQuery1.Close; with ZQuery1.SQL do begin Clear; Add('SELECT Grafik FROM Bild'); Add('WHERE ID = :id'); end; ZQuery1.ParamByName('id').AsInteger := PKnoten(TreeView1.Selected.Data)^.KnotenId; ZQuery1.Open; if (ZQuery1.RecordCount > 0) and not ZQuery1.FieldByName('Grafik').IsNull and ZQuery1.FieldByName('Grafik').IsBlob then begin //Hier ist der interessante Teil aJPG := TJPEGImage.Create; Stream := ZQuery1.CreateBlobStream(ZQuery1.FieldByName('Grafik'),bmRead); try aJPG.LoadFromStream(Stream); Image1.Picture.Graphic := aJPG; FitImage; finally Stream.Free; aJPG.Free; end; end else begin Image1.Picture.Assign(nil); Label1.Visible := true; end; end; |
Re: Bild über TImage aus der Datenbank holen?
Es ist nur der Pfad in der DB abgelegt.
|
Re: Bild über TImage aus der Datenbank holen?
dann
Delphi-Quellcode:
Image.picture.LoadFromFile(DateinameAusDatenbank);
|
Re: Bild über TImage aus der Datenbank holen?
Das ist doch viel einfacher.
Delphi-Quellcode:
Getippt und nicht getestet.
//Auslesen des Pfades
query.SQL.Text := 'SELECT Pfad FROM Tabelle WHERE Bedingung'; query.Open; Pfad := Query.FieldByName('Pfad').AsString; //Versuchen, die Grafik ins Image zu laden try aJPG := TJPEGImage.Create; try aJPG.LoadFromFile(Pfad); Image1.Picture.Graphic := aJPG; except ShowMessage('Fehler beim Laden der Grafik'); end; finally aJPG.Free; end; |
Re: Bild über TImage aus der Datenbank holen?
das erzeugen des JPEG-Image ist überflüssig wenn die unit jpeg eingebunden ist. Dadurch kann TPciture mit LoadFromFile das JPEG laden.
|
Re: Bild über TImage aus der Datenbank holen?
War mir auch gerade aufgefallen, aber Du warst schneller, bevor ich editieren konnte ;)
|
Re: Bild über TImage aus der Datenbank holen?
Ich danke euch schon mal. Nun habe ich aber ein Problem.
So sieht meine jetzige Abfrage aus:
Delphi-Quellcode:
Nach dieser Abfrage werden die Daten in einem neuem Fenster, in einem DBGrid angezeigt.
procedure TForm9.test(Sender: TObject);
begin ADOQuery1.Active:=false; ADOQuery1.Sql.Clear; ADOQuery1.Sql.Add('SELECT * FROM abc WHERE a like "%" ORDER BY test asc'); ADOQuery1.Active:=true; end; neben diesem DBgrid befindet sich das TImage. Wie bekomme ich die Daten von der oben genannten Abfrage mit deinem Code in das TImage? |
Re: Bild über TImage aus der Datenbank holen?
Betreibe doch einfach einen Wissenstranfer und ersetzte Query durch ADOQuery1
|
Re: Bild über TImage aus der Datenbank holen?
Also meinst du das so?
Delphi-Quellcode:
//Auslesen des Pfades
Pfad :=ADOQuery1.FieldByName('Pfad').AsString; //Versuchen, die Grafik ins Image zu laden try aJPG := TJPEGImage.Create; try aJPG.LoadFromFile(Pfad); Image1.Picture.Graphic := aJPG; except ShowMessage('Fehler beim Laden der Grafik'); end; finally aJPG.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz