Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi INDY-Emails: Probleme mit Attachments (https://www.delphipraxis.net/19145-indy-emails-probleme-mit-attachments.html)

meggles 30. Mär 2004 08:46


INDY-Emails: Probleme mit Attachments
 
Hallo,
sorry, ich komm einfach nicht weiter:
Wie kann ich die Attachments einer erhaltenen Email (Indy 9) als Blobfeld in einer Datenbank speichern? (IB 7) Das muss irgendwie über einen Stream gehen, ich checks aber irgendwie nicht. Ebenso das auslesen.
Wäre toll, wenn mich da mal jemand von der Leitung schubsen könnte :gruebel:
Danke!
Simon

sakura 30. Mär 2004 10:26

Re: INDY-Emails: Probleme mit Attachments
 
Was genau ist Dein Problem, an das Attachment zu gelangen oder die Daten in der DB zu speichern?

...:cat:...

meggles 30. Mär 2004 10:57

Re: INDY-Emails: Probleme mit Attachments
 
Hi sakura,
also das speichern in der DB funzt.
Delphi-Quellcode:
vstream := TStringStream.Create('');
TIdAttachment(MessageParts[vi]).Encode(vStream);
vStream.Position := 0;
ParamByName('inhalt').AsString := vStream.DataString;
execSQL;
Nun hab ich shcon mal weiterprobiert und lese die Datei so wieder aus der Datenbank:
Delphi-Quellcode:
  vFileStream := TFileStream.Create(vDir + 'TEMP\'+gvanlagenarray[lvAnhaenge.itemindex].Dateiname, fmCreate);
  with fDM.IB_Cursor do
  begin
    if active then showmessage('ibcursor offen! (ActAttOeffnenExecute)');
    close;
    sql.Text := 'select inhalt from email_blob where ID = '+inttostr(gvAnlagenarray[lvAnhaenge.ItemIndex].id);
    prepare;
    open;
    vStream := CreateBlobStream(FieldByName('inhalt'),bsmRead);
    vFileStream.Write(vStream,vStream.Size);
  end;
Das funzt aber nicht - ich krieg ne 0 KB-Datei. Woran liegt das?
Hoffe, Du kannst mir helfen :roll:
Danke!
Simon

shmia 30. Mär 2004 11:06

Re: INDY-Emails: Probleme mit Attachments
 
Zitat:

Zitat von meggles
Das funzt aber nicht - ich krieg ne 0 KB-Datei. Woran liegt das?

Richtig kopieren:
vFileStream.CopyFrom(vStream, 0);

meggles 30. Mär 2004 12:40

Re: INDY-Emails: Probleme mit Attachments
 
Hm, auch damit bleibt die Datei 0KB groß. Ich kann sie auch erst öffnen, wenn ich mein Programm volständig schließe, vorher heißt es, dass sie nicht geöffnet werden kann, weil noch darauf zugegriffen wird....
:gruebel:

shmia 30. Mär 2004 12:56

Re: INDY-Emails: Probleme mit Attachments
 
Zitat:

Zitat von meggles
Hm, auch damit bleibt die Datei 0KB groß. Ich kann sie auch erst öffnen, wenn ich mein Programm volständig schließe, vorher heißt es, dass sie nicht geöffnet werden kann, weil noch darauf zugegriffen wird....
:gruebel:

Das bedeutet, die Datei wird korrekt geschrieben, ist aber exclusiv geöffnet.
2 Möglichkeiten:
* vFileStream schliesen
Delphi-Quellcode:
FreeAndNil(vFileStream);
* den FileStream mit Share-Rechten öffnen
Delphi-Quellcode:
vFileStream := TFileStream.Create(dateiname, fmOpenWrite or fmShareDenyWrite);


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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