![]() |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Da fehlt aber noch mindestens ein try-finally-Block. Den Dateinamen solltest Du in einer Variablen oder Konstanten ablegen und dann die benutzen, außerdem sind relative Pfade böse.
|
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
vielleicht solltest Du die Datei noch da ablegen, wo es allgemein üblich ist.
Im Temp Folder des Users oder im AppData Verzeichnis. Stichwort dazu: SpecialFolders. Grüße Klaus |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Ist es so richtig?:gruebel:
Delphi-Quellcode:
procedure TForm17.Button2Click(Sender: TObject);
var myPDF : String; fs : TFileStream; begin fs:=TFileStream.Create('c:Temp\Dok.pdf',fmCreate or fmShareExclusive); myPDF := ADOTable1.FieldByName ('PDFFILE').AsString; fs.Write(mypdf[1],length(mypdf)*Sizeof(char)); fs.Free; if ShellExecute(Application.Handle, 'open', PChar('c:Temp\Dok.pdf'), nil, nil, SW_NORMAL) <= 32 then ShowMessage('Es ist ein Fehler aufgetreten,da in der Datenbank keine Pdf Datei gefunden wurde.'); |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Versuch mal
Delphi-Quellcode:
procedure TForm17.Button2Click(Sender: TObject);
const FILENAME = 'Dok.pdf'; var myPDF, TempPath : String; fs : TFileStream; begin SetLength(TempPath, GetTempPath(0, nil)); GetTempPath(Length(TempPath), PChar(TempPath)); SetLength(TempPath, StrLen(PChar(TempPath))); TempPath := IncludeTrailingPathDelimiter(TempPath) + FILENAME; fs:=TFileStream.Create(TempPath,fmCreate or fmShareExclusive); try myPDF := ADOTable1.FieldByName ('PDFFILE').AsString; fs.Write(mypdf[1],length(mypdf)*Sizeof(char)); finally fs.Free; end; if ShellExecute(Application.Handle, 'open', PChar(TempPath), nil, nil, SW_NORMAL) <= 32 then ... |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Hauahauaha, das brennt beim Lesen ja richtig in den Augen.
Gestartet wurde der Thread mit einem Blob-Feld, dessen Inhalt direkt über eine Methode in eine Datei gespeichert wurde. Dann die blonde Versuchung den PDF Reader direkt damit zu füttern - als Parameter einen String - kein Problem, eben fix mal die PDF-Rohdaten in einen String gepackt und dem PDF-Reader zum Fressen gegeben. Und jetzt wundern warum der meckert. :-D Sehr cool auch der Vorschlag die Daten aus dem String in einen Stream zu schreiben (dabei liegen die Daten eines BlobFields als Stream vor). Und mit der Methode SaveToFile (siehe erster Beitrag) wäre es noch simpler gewesen. Sehr amüsant das Ganze ;) - der Start als Codelib Vorschlag ist ja auch schon ein Running Gag :mrgreen: |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Nicht wundern, nur staunen :zwinker:
|
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
hallo,
brennende augen?naja,recht hast du...:-D immer lacht mich aus, ist ja auch ok :-D trotzdem freue ich mich,wenn mir jemand über die strasse hilft :thumb: |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Aber diese Hilfe sieht so aus, als wenn du am stolpern bist und dir gibt dann noch jemand einen Schuppser ;)
|
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Wenn Stützen nicht hilft, muss man es halt mit Schubsen versuchen :mrgreen:
|
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
In die richtige Richtung, aber nicht vor das nächste Auto :stupid:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:56 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