![]() |
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; |
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. |
AW: JPG im Blob Feld wird extrem groß
Du fügst auch nicht die Jpegdatei, sondern das unkomprimierte Bild ein.
|
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.
|
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? |
AW: JPG im Blob Feld wird extrem groß
|
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; |
AW: JPG im Blob Feld wird extrem groß
Statt Tclientdataset musst Du den Namen Deines ClientDatasets (vermutlich ClientDataset1?) angeben.
|
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 |
AW: JPG im Blob Feld wird extrem groß
Delphi-Quellcode:
?
Tclientdataset1.Edit;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz