Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Bilder aus MySQL-Blobfeld anzeigen (https://www.delphipraxis.net/12437-bilder-aus-mysql-blobfeld-anzeigen.html)

Biohazard 27. Nov 2003 12:55


Bilder aus MySQL-Blobfeld anzeigen
 
Hallo,

Habe eine MySQL-Tabelle in der ein Blob-Feld liegt. Dort sind einige Bilder gespeichert. Die Tabelle wurde aus einer Paradox-Tabelle importiert.
Nun versuche ich auf diese zuzugreifen. Dafür verwende ich die ZEOS-Komponente.

Nun bekomme ich den Fehler: "Ungültige Typumwandlung".

Versuche ich die Eigenschaft "Datatype" des Feldes bei den FieldDefs von ftBlob auf ftGraphic zu ändern geht das auch nicht (Springt immer wieder zurück auf ftBlob). Änder ich es in dem Feldeditor (oder wie das Ding heißt) dann erscheint wieder ein Fehler.

Hat da jemand ne Ahnung ob da noch was eingestellt werden muß oder was das evtl. falsch läuft?

Muß man das evtl. schon irgendwie in MySQL festlegen? Glaub ich jedenfalls nicht. Schau ich mir die Datensätze z.B. mit myAdmin an, werden die Bilder gezeigt. Kann also kein DB-Problem sein.

Biohazard 28. Nov 2003 09:17

Re: Bilder aus MySQL-Blobfeld anzeigen
 
Habe jetzt herausgefunden wo der Fehler passiert nur leider weiß ich nichts damit anzufangen:


Wenn das Feld Icon kommt soll er in das Grid ein Bild zeichnen.
Code:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 with TDBGrid(Sender), Column.Field do
      If (Fieldname='Icon') then
         Draw_CellIcon(Canvas, Rect, Column.Field)
      else
         DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Hier passiert die Umwandlung.
Code:
procedure TForm1.Draw_CellIcon(cnv: TCanvas; Rect: TRect; Feld: TField);
var Bmp: TBitmap;
begin
   Bmp:= TBitmap.Create;
   Bmp.LoadFromstream(TBlobStream.Create(TBlobField(Feld), bmRead));
   Cnv.Draw(Rect.left, Rect.top, Bmp);
   Bmp.Free;
end;
Hier kommt der Fehler "Ungültige Typumwandlung" in der Zeile Bmp.LoadFromstream(TBlobStream.Create(TBlobField(F eld), bmRead));
Nur leider Weiß ich nicht was da geändert werden soll. Bei der Paradox-Version des Progs geht es, bei der MySQL-Version nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz