Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Blob To File (https://www.delphipraxis.net/17220-blob-file.html)

jonny 1. Mär 2004 14:26


Blob To File
 
Hallo ich habe folgendes Problem also ich schafe es dateien in ein BlobFeld des ClientDataSet zu speichern aber es nicch wieder auszulesen.

Hier ist meine Speichern procdur:

Delphi-Quellcode:
procedure TForm1.SaveFileToBlob(FileName: String; DataSet: TDataSet);
var
  MyStream : TStream;
  MyFileStream: TFileStream;
begin
  DataSet.edit;
  MyFileStream:=TFileStream.Create(FileName, fmOpenRead);
  MyStream:=DataSet.CreateBlobStream(DataSet.FieldByName('BILD'),bmReadWrite);
  MyStream.CopyFrom(MyFileStream, 0);
  MyStream.Free;
  MyFileStream.Free;
  DataSet.Post;
end;
Kann mir jemand sage wie den wieder auslesen kann und da es bei den Dateien die darin gespeichert werden um Bilder handelt wie ich die ohne zu speichern in einen Image anzeigen kann?

Garby 1. Mär 2004 15:03

Re: Blob To File
 
Hallo,

ich machs so:
Delphi-Quellcode:
TBlobField(DataSet.FieldByName('BILD')).SaveToFile(FileName);

jonny 1. Mär 2004 15:34

Re: Blob To File
 
Danke jetzt klappts bei mir auch.

hacki 17. Jun 2004 21:47

Re: Blob To File
 
Hi,

dein erster Ansatz hätte auch gefunzt, du hättest die streams nur initialisieren müssen. Die Datenbank brauchst du übrigens nur im READ-Modus öffnen:

Code:
    Table1.Open;

    MyStream := TStream.Create;

    MessageDlg('MyStream.Create.', mtInformation, [mbOk], 0);

    MyStream:=Table1.CreateBlobStream(table1.FieldByName('pdf'),bmRead);

    // FileStream erzeugen
    MyFileStream := TFileStream.Create('C:\transfer\12345.pdf',fmCreate );

    MyFileStream.CopyFrom(MyStream, 0);

    MyStream.Free;
    MyFileStream.Free;

    Table1.Close;
Grüsse, Hacki


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 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