Delphi-PRAXiS
Seite 6 von 6   « Erste     456   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   JPG im Blob Feld wird extrem groß (https://www.delphipraxis.net/184681-jpg-im-blob-feld-wird-extrem-gross.html)

calikey 18. Apr 2015 16:06

AW: JPG im Blob Feld wird extrem groß
 
ok der hinweis ist weg danke :-)

nur leider wird immer noch nichts gespeichert.
im debugger steht folgendes.
Delphi-Quellcode:
procedure TBlobField.SaveToFile(const FileName: string);
var
  Stream: TStream;
begin
  Stream := TFileStream.Create(FileName, fmCreate);
  try
    SaveToStream(Stream);
  finally
    Stream.Free;
  end;
end;

procedure TBlobField.SaveToStream(Stream: TStream);
var
  BlobStream: TStream;
begin
  BlobStream := DataSet.CreateBlobStream(Self, bmRead);
  try
    Stream.CopyFrom(BlobStream, 0);
  finally
    BlobStream.Free;
  end;
end;

procedure TBlobField.SaveToStrings(Strings: TStrings);
var
  BlobStream: TStream;
begin
  BlobStream := DataSet.CreateBlobStream(Self, bmRead);
  try
    if DataType = ftWideMemo then
      Strings.LoadFromStream(BlobStream, TEncoding.Unicode)
    else
      Strings.LoadFromStream(BlobStream);
  finally
    BlobStream.Free;
  end;
end;

procedure TBlobField.SaveToStreamPersist(StreamPersist: IStreamPersist);
var
  BlobStream: TStream;
  Size: Longint;
  Header: TBytes;
  GraphicHeader: TGraphicHeader;
begin
  BlobStream := DataSet.CreateBlobStream(Self, bmRead);
  try
    Size := BlobStream.Size;
    if Size >= SizeOf(TGraphicHeader) then
    begin
      SetLength(Header, SizeOf(TGraphicHeader));
      BlobStream.Read(Header, 0, Length(Header));
      Move(Header[0], GraphicHeader, SizeOf(TGraphicHeader));
      if (GraphicHeader.Count <> 1) or (GraphicHeader.HType <> $0100) or
        (GraphicHeader.Size <> Size - SizeOf(GraphicHeader)) then
        BlobStream.Position := 0;
    end;
    StreamPersist.LoadFromStream(BlobStream);
  finally
    BlobStream.Free;
  end;
end;

DeddyH 18. Apr 2015 16:20

AW: JPG im Blob Feld wird extrem groß
 
Der VCL-Code nützt uns nichts, zeig uns lieber die Stelle in Deinem, direkt bevor er in die gezeigte Unit springt.

khh 18. Apr 2015 16:20

AW: JPG im Blob Feld wird extrem groß
 
Muss es denn sein die Bilder in der DB zu speichern?
Das ist eigentlich keine so gute Idee.
Bilder sollten m.E. auf der Platte und nur der Pfad in der DB gespeichert werden.

Gruss KH

Bernhard Geyer 18. Apr 2015 16:25

AW: JPG im Blob Feld wird extrem groß
 
Zitat:

Zitat von khh (Beitrag 1298338)
Muss es denn sein die Bilder in der DB zu speichern?
Das ist eigentlich keine so gute Idee.
Bilder sollten m.E. auf der Platte und nur der Pfad in der DB gespeichert werden.

Für beide Wege (Bilder in DB/Bilder in Dateisystem) gibt es Argumente dafür und dagegen. Darüber gabs schon ein paar Diskussionen
Und ich halte es für besser die Bilder in der DB zu haben.

DeddyH 18. Apr 2015 16:25

AW: JPG im Blob Feld wird extrem groß
 
Wenn wir noch im letzten Jahrtausend wären, würde ich Dir da zustimmen :roll:

mkinzler 18. Apr 2015 16:26

AW: JPG im Blob Feld wird extrem groß
 
Diese Diskussion hatten wir schon öfterst und kann nicht so eindeutig, wie von Dir hier angedeutet beantwortet werden. Das sollten wir auch nicht in diesem Thread.

calikey 18. Apr 2015 18:09

AW: JPG im Blob Feld wird extrem groß
 
ok dann anderen weg wie muss ich denn um schreiben das ein pfad angelegt wird und der dann in der datenbank kommt. vieleicht funktioniert das dann besser als der blob


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:20 Uhr.
Seite 6 von 6   « Erste     456   

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