Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

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 14. Apr 2015 09:15

Datenbank: Mybase • Version: xe7 • Zugriff über: lokal

JPG im Blob Feld wird extrem groß
 
So habe die meisten Probleme gelöst. nur Leider wird ein JPG was ich in mein Blob Feld lade extrem groß. JPG größe 1,19 mb wird zu 27mb in der Datenbank. Habe das die feld def als FTgraphic und als normal blob versucht. in der clientdataset ist die feld def grad <FIELD attrname="Arbeitsvertragimg" fieldtype="bin.hex" SUBTYPE="Graphics"/> definiert

als Quellcode hab ich es so versucht, es funktioniert auch nur eben wird die Datenbank extrem groß.
Delphi-Quellcode:
procedure TForm2.btnLoadClick(Sender: TObject);
var
   SPicFileName: string;
   JP : TJPegImage;
   C : TClipboard;
begin
  if OpenPictureDialog1.Execute then
  begin
    JP := TJPegImage.Create;
    C:= TClipboard.Create;
    SPicFileName:= OpenPictureDialog1.FileName;
    try
      JP.LoadFromFile(SpicFileName);
      C.Assign(JP);
      DBImage1.PasteFromClipboard;

    finally
    JP.Free;
    C.Free;
  end;
  end;

Bernhard Geyer 14. Apr 2015 09:18

AW: JPG im Blob Feld wird extrem groß
 
Du lädst eine JPEG, kopierst es in die Zwischenablage und von dort in die DB.
Über diesen Umweg wird das JPEG ein Bitmap. Und ein BMP ist nunmal fast immer viel größer als ein JPEG.

mkinzler 14. Apr 2015 09:19

AW: JPG im Blob Feld wird extrem groß
 
Du fügst auch nicht die Jpegdatei, sondern das unkomprimierte Bild ein.

Sir Rufo 14. Apr 2015 09:21

AW: JPG im Blob Feld wird extrem groß
 
Der Hauptfehler ist doch schonmal der Weg die Daten in das Control zu packen anstatt direkt in die Datenmenge. Der Rest sind doch nur noch Folgefehler mit falschen Schlussfolgerungen.

calikey 14. Apr 2015 09:24

AW: JPG im Blob Feld wird extrem groß
 
Bin noch anfänger :-)
Aber wie lad ich jetzt am blödesten ins feld ohne das es zur bmp wird?

mkinzler 14. Apr 2015 09:40

AW: JPG im Blob Feld wird extrem groß
 
Lade die Datei in den Blob(stream)

http://www.componentace.com/blob-jpeg-field-delphi.htm

calikey 14. Apr 2015 10:26

AW: JPG im Blob Feld wird extrem groß
 
so hab das jetzt mal etwas für mich angepasst. leider bekomme ich bei meinem angepassten code nur denn Fehler:
[dcc32 Fehler] doku.pas(135): E2076 Diese Form des Methodenaufrufs ist nur für Klassenmethoden oder Konstruktoren zulässig
Delphi-Quellcode:
procedure TForm2.btnLoadClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if (sdBlob.Execute) then
  begin
     Tclientdataset.Edit; //fehler hier E2076 
    begin
      FileStream := TFileStream.Create(sdBlob.FileName,fmCreate);
      BlobStream := Tclientdataset.CreateBlobStream(tclientdataset.FieldByName('Arbeitsvertragimg'),bmRead); //fehler hier E2076
      FileStream.CopyFrom(BlobStream,BlobStream.Size-BlobStream.Position);
      BlobStream.Free;
      FileStream.Free;
      Tclientdataset.Post; //fehler hier E2076
      tclientdatasetAfterScroll(tclientdataset); //fehler hier E2010
    end;
end;
end;

DeddyH 14. Apr 2015 10:28

AW: JPG im Blob Feld wird extrem groß
 
Statt Tclientdataset musst Du den Namen Deines ClientDatasets (vermutlich ClientDataset1?) angeben.

calikey 14. Apr 2015 10:37

AW: JPG im Blob Feld wird extrem groß
 
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;

Hab mal beide versuch mit clientdataset1 und auch beide datasource aber leider immer noch der fehler

mkinzler 14. Apr 2015 10:39

AW: JPG im Blob Feld wird extrem groß
 
Delphi-Quellcode:
 Tclientdataset1.Edit;
?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Seite 1 von 6  1 23     Letzte »    

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