Einzelnen Beitrag anzeigen

Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#1

Bild in Paradox Tabelle speichern & wieder laden...

  Alt 3. Feb 2010, 19:31
Datenbank: Paradox • Version: 7,0 • Zugriff über: TQuery
Guten Abend alle miteinander...

irgendwie hab ich mich in ne sache verheckselt und komm da nicht mehr so ganz raus alleine

ich hab ein in TImage angezeigtes Bild (jpg, jpeg, bmp oder tga) in meine Datenbank gespeichert mittels:

Delphi-Quellcode:
    if not img_MyStonesPicture.Picture.Bitmap.Empty then begin // is überhaupt was drin im Bild?
      BildStrom := TMemoryStream.Create;
      try
        img_MyStonesPicture.Picture.Bitmap.SaveToStream(BildStrom); // Kühlschrank auf, Kuh rein..
        Query1.ParamByName('MyStonePicture').LoadFromStream(BildStrom,ftBlob); // Kuh raus, Elefant rein
      finally
        BildStrom.Free; // Aufräumen
      end;
    end else begin // wenn Bild leer, dann brauchen wir auch
                       // keine Bilddaten in DB zu schreiben...
      Query1.ParamByName('MyStonePicture').Value := NULL; // damit das funzt, unit Variants
                                                          // einbinden - da is NULL deklariert!
    end;

Query1.Prepared := True;
Query1.ExecSQL;
nun hab ich das problem, dass ich auf alle daten des datensatzes zugreifen kann, bis auf das bild.

ich habs in etwa so versucht in meheren variationen:

Delphi-Quellcode:
BildStrom := TBlobstream;

BildStrom := TBlobStream.Create(Table1.FieldValues['StonePicture'] as TBlobField,bmRead);

img_MyStonesPicture.Picture.Bitmap.LoadFromStream(BildStrom,ftBlob);

BildStrom.Free;
Danke für jede Antwort im Voraus...

MFG

Floddy


EDIT:::

Lösung gefunden

Delphi-Quellcode:
Bildstrom:=Query1.CreateBlobStream(Query1.FieldByName('StonePicture'), bmRead);
img_MyStonesPicture.Picture.Bitmap.LoadFromStream(BildStrom);
Flo
  Mit Zitat antworten Zitat