Delphi-PRAXiS
Seite 3 von 6     123 45     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)

DeddyH 14. Apr 2015 11:05

AW: JPG im Blob Feld wird extrem groß
 
Ah, dann ergänz im gezeigten Code mal überall ClientDataset1 um den Präfix "Form1.", also so:
Delphi-Quellcode:
Form1.ClientDataset1

calikey 14. Apr 2015 11:21

AW: JPG im Blob Feld wird extrem groß
 
ok jetzt kommt nur noch 1 fehler
[dcc32 Fehler] doku.pas(165): E2010 Inkompatible Typen: 'TDataSet' und 'class of TDataSet'

Delphi-Quellcode:
    procedure tclientdatasetAfterScroll(DataSet1: TDataSet);



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

var
  Form2: TForm2;


implementation

{$R *.dfm}

uses Unit1, ABOUT;


procedure TForm2.TclientdatasetAfterScroll(DataSet1: TDataSet);
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;



procedure TForm2.btnLoadClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if sdBlob.Execute then
  begin
    Form1.clientdataset1.Edit;
    BlobStream := nil;
    FileStream := TFileStream.Create(sdBlob.FileName,fmCreate);
    try
      BlobStream := Form1.clientdataset1.CreateBlobStream(Form1.clientdataset1.FieldByName('Arbeitsvertragimg'),bmRead);
      FileStream.CopyFrom(BlobStream,BlobStream.Size-BlobStream.Position);
      Form1.clientdataset1.Post;
      TclientdatasetAfterScroll(TDataSet); // fehler 2010
    finally
      BlobStream.Free;
      FileStream.Free;
    end;
  end;
end;

mkinzler 14. Apr 2015 11:23

AW: JPG im Blob Feld wird extrem groß
 
Und welche Zeile wäre das?
Delphi-Quellcode:
TclientdatasetAfterScroll(Form1.ClientDataSet1);

calikey 14. Apr 2015 11:25

AW: JPG im Blob Feld wird extrem groß
 
das ist diese
Delphi-Quellcode:
TclientdatasetAfterScroll(TDataSet); //2010

DeddyH 14. Apr 2015 12:10

AW: JPG im Blob Feld wird extrem groß
 
Delphi-Quellcode:
TclientdatasetAfterScroll(Form1.clientdataset1)

himitsu 14. Apr 2015 12:22

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

Zitat von DeddyH (Beitrag 1297657)
Delphi-Quellcode:
TclientdatasetAfterScroll(Form1.clientdataset1)

Glaub nicht.
Er will ein Event aufrufen? ... das liegt auf einer Form ... also muß man Dieses dort auch aufrufen. :angle:

Also
Delphi-Quellcode:
ClientDataSet1AfterScroll(Form1.ClientDataSet1);
,
aber vermutlich eher so
Delphi-Quellcode:
Form1.ClientDataSet1AfterScroll(Form1.ClientDataSet1);
, da das Event vermutlich auf der selben Form liegt, wie das DataSet. :gruebel:
Oder notfalls auch indirekt über
Delphi-Quellcode:
Form1.ClientDataSet1.OnAfterScroll(Form1.ClientDataSet1);
.
[edit] siehe nachfolgenden Beitrag.

Wie ich das sehe, benutzt diese Methode praktisch ausschließlich vorwiegend Komponenten/Funktionen der Form1, also gehört diese Methode auch in TForm1 rein, wo sie dann von Form2 aus aufgerufen wird, mit Übergabe das Dateinamen als Parameter.
So oft, wie hier die böse globale Variable
Delphi-Quellcode:
Form1
benutzt werden musste. Immer wenn man solche globalen Variablen verwenden muß, vorallem bei der Masse, sollte man dringend nachsehn, was man hier falsch macht.



Allgemein würde ich aber dringend das Studium eines Grundlagen-Tutorials empfehlen.
> Typen <> Objektinstanzen und Variablen, sowie Parameter ... was ist das und wie benutzt man es
> und wie benennt man Komponenten/Funktionen (sprechende Bezeichner)

DeddyH 14. Apr 2015 12:25

AW: JPG im Blob Feld wird extrem groß
 
Glaub doch.
Zitat:

Delphi-Quellcode:
type
  TForm2 = class(TForm)
    MainMenu1: TMainMenu;
    ...
    procedure tclientdatasetAfterScroll(DataSet: TDataSet);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

Für die Benennung der Methode kann ich ja nix.

himitsu 14. Apr 2015 12:30

AW: JPG im Blob Feld wird extrem groß
 
Ohh. OK, dann ist die Benennung doch echt böse.

Hab meine letzte Antwort versucht entsprechend anzupassen. :oops:

calikey 14. Apr 2015 14:13

AW: JPG im Blob Feld wird extrem groß
 
so es sind keine fehler mehr und es lässt sich compilieren nur leider passiert nichts.
fehler meldung im programm die syntax für denn dateiname verzeichnissname oder datenträgerbezeichnung ist falsch?:(

mkinzler 14. Apr 2015 14:16

AW: JPG im Blob Feld wird extrem groß
 
Und wie sieht dieser aus?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.
Seite 3 von 6     123 45     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