AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken JPG im Blob Feld wird extrem groß
Thema durchsuchen
Ansicht
Themen-Optionen

JPG im Blob Feld wird extrem groß

Ein Thema von calikey · begonnen am 14. Apr 2015 · letzter Beitrag vom 18. Apr 2015
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#41

AW: JPG im Blob Feld wird extrem groß

  Alt 14. Apr 2015, 15:51
Das, was zur Laufzeit in der Filename-Eigenschaft dieses Dialogs steht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#42

AW: JPG im Blob Feld wird extrem groß

  Alt 14. Apr 2015, 16:23
Calikey, bevor hier einer der Beteiligten einen Herzinfarkt bekommt, oder entnervt aufgibt: Bitte lies Dir das durch: http://www.delphipraxis.net/41047-tu...ortgeschr.html

Ehrlich!

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
calikey

Registriert seit: 19. Mär 2015
29 Beiträge
 
Delphi XE7 Architect
 
#43

AW: JPG im Blob Feld wird extrem groß

  Alt 14. Apr 2015, 17:03
Bin froh das man soviel gedult hat. Ich muss mich erst mal um meine kleine kümmern und lese mir heute abend denn link durch. Ich schreib dann heute abend weiter. Bedanke mich erst mal ganz herzlich bei allen die bis jetzt geholfen haben.
  Mit Zitat antworten Zitat
calikey

Registriert seit: 19. Mär 2015
29 Beiträge
 
Delphi XE7 Architect
 
#44

AW: JPG im Blob Feld wird extrem groß

  Alt 18. Apr 2015, 12:47
So beim compelieren ist mir eine warnung auf gefallen
[dcc32 Warnung] doku.pas(171): W1036 Variable 'BlobStream' ist möglicherweise nicht initialisiert worden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#45

AW: JPG im Blob Feld wird extrem groß

  Alt 18. Apr 2015, 13:27
nicht initialisiert = nichts zugewiesen
Delphi-Quellcode:
var
  i: Integer;
begin
  if i = 0 then ; // nicht initialisiert

var
  i: Integer;
begin
  i := 0;
  if i = 0 then ; // initialisiert
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#46

AW: JPG im Blob Feld wird extrem groß

  Alt 18. Apr 2015, 13:32
Heißt in Deinem Fall: Du greifst anscheinend auf die Variable zu, bevor CreateBlobStream aufgerufen wurde bzw. in bestimmten Fällen kann es sein, dass diese Methode gar nicht aufgerufen wird, Du greifst aber trotzdem auf die Variable zu. Wieso, weshalb, warum, das kannst nur Du wissen, wir kennen den Code ja nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
calikey

Registriert seit: 19. Mär 2015
29 Beiträge
 
Delphi XE7 Architect
 
#47

AW: JPG im Blob Feld wird extrem groß

  Alt 18. Apr 2015, 16:16
So quellcode
bei BlobStream.Free; meldet er denn hinweis
Delphi-Quellcode:
type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    odBlob: TOpenDialog;
    sdBlob: TSaveDialog;
    Button3: TButton;
    frxReport1: TfrxReport;
    Photo: TImage;
    
    procedure btnLoadClick(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure tPhotoAlbumAfterScroll(ClientDataSet1: TClientDataSet);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;


implementation

{$R *.dfm}

uses Unit1, ABOUT;



procedure TForm2.btnLoadClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if sdBlob.Execute then
  BlobStream := nil;
  FileStream := TFileStream.Create(sdBlob.FileName,fmCreate);
  begin
    Form1.clientdataset1.Edit;
    try
      BlobStream := Form1.clientdataset1.CreateBlobStream(Form1.clientdataset1.FieldByName('Arbeitsvertragimg')AS TBlobField, bmWrite );
      FileStream.CopyFrom(BlobStream,BlobStream.Size-BlobStream.Position);
      Form1.clientdataset1.Post;
    finally
      BlobStream.Free; // hier ist der hinweis
      FileStream.Free;
      Form1.clientdataset1.Post;
      tPhotoAlbumAfterScroll (Form1.clientdataset1)

    end;
  end;
end;

procedure TForm2.Button12Click(Sender: TObject);
begin
frxreport1.showreport;
end;

procedure TForm2.Button13Click(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if (sdBlob.Execute) then
    begin
      FileStream := TFileStream.Create(sdBlob.FileName,fmCreate);
      BlobStream := Form1.clientdataset1.CreateBlobStream(Form1.clientdataset1.FieldByName('Arbeitsvertragimg'),bmRead);
      FileStream.CopyFrom(BlobStream,BlobStream.Size-BlobStream.Position);
      BlobStream.Free;
      FileStream.Free;
    end;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Form1.clientdataset1.Open;
end;

procedure TForm2.tPhotoAlbumAfterScroll(ClientDataSet1: TClientDataSet);
var
  JpegImage: TJPEGImage;
  BlobStream: TStream;
begin
  if (not Form1.clientdataset1.FieldByName('Arbeitsvertragimg').IsNull) then
    begin
      BlobStream := Form1.clientdataset1.CreateBlobStream(Form1.clientdataset1.FieldByName('Arbeitsvertragimg'),bmRead);
      JpegImage := TJPEGImage.Create;
      try
        JpegImage.LoadFromStream(BlobStream);
        Photo.Picture.Assign(JpegImage);
        Photo.Visible := True;
      finally
        JpegImage.Free;
        BlobStream.Free;
      end;
    end
  else
    Photo.Visible := False;
end;


END.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#48

AW: JPG im Blob Feld wird extrem groß

  Alt 18. Apr 2015, 16:26
Zitat:
Delphi-Quellcode:
if sdBlob.Execute then
  BlobStream := nil;
Das heißt, dass BlobStream nur auf nil gesetzt wird, wenn der Benutzer den Dialog bestätigt hat. Der restliche Code wird aber unabhängig davon trotzdem ausgeführt. Damit das nicht geschieht, musst Du den kompletten Code nach der If-Abfrage mit einem begin-end-Block einschließen.

[edit] Kleiner Tipp: drück doch mal STRG+D, damit der Code-Formatter die Einrückungen korrigiert, dann fällt so etwas schon rein optisch auf. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#49

AW: JPG im Blob Feld wird extrem groß

  Alt 18. Apr 2015, 16:26
Delphi-Quellcode:
Es fehlen einige begin und end

procedure TForm2.btnLoadClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if sdBlob.Execute then
  begin // <-
    BlobStream := nil;
    FileStream := TFileStream.Create(sdBlob.FileName,fmCreate);
    begin
      Form1.clientdataset1.Edit;
      try
        BlobStream := Form1.clientdataset1.CreateBlobStream(Form1.clientdataset1.FieldByName('Arbeitsvertragimg')AS TBlobField, bmWrite );
        FileStream.CopyFrom(BlobStream,BlobStream.Size-BlobStream.Position);
        Form1.clientdataset1.Post;
      finally
        BlobStream.Free; // hier ist der hinweis
        FileStream.Free;
      end; // <-
      Form1.clientdataset1.Post;
      tPhotoAlbumAfterScroll (Form1.clientdataset1)
    end;
   end; // <-
  end;
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#50

AW: JPG im Blob Feld wird extrem groß

  Alt 18. Apr 2015, 16:29
Ätsch, schneller
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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