![]() |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
DeddyH,
es hat sofort funktioniert!!! Danke für die Mühe:-D Ich hab nun versucht die gespeicherte PDF mit dem Adobe Reader aus der Datenbank herauszuholen,aber da kommt kein Mux,keine Meldung und nix passiert.
Delphi-Quellcode:
var
myPDF : String; begin myPDF := ADOTable1.FieldByName ('PDFFILE').AsString; shellexecute(application.Handle,'open',PChar (myPDF),nil,nil, sw_show); |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Lass mal den ersten Parameter ller (NULL),
Und wenn du die gespeicherte Datei mal manuell im Reader öffnest? |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Wie soll denn Adobe auf Deine Datenbank zugreifen? Speichere doch einfach den Feldinhalt in einer temporären Datei und öffne die dann.
|
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
hab absolut keine Ahnung wie das geht.Ich hab schon gelesen und gegoogelt...
|
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Delphi-Quellcode:
So sollte das Schreiben funktionieren.
var
myPDF : String; fs : TFileStream; begin fs:=TFileStream.Create(MeineTempDatei,fmCreate or fmShareExclusive); myPDF := ADOTable1.FieldByName ('PDFFILE').AsString; fs.Write(mypdf[1],length(mypdf)*Sizeofchar); fs.Free; Dann diese Datei an Adobe übergeben und hinterher löschen nicht vergessen. Gruß K-H |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Hallo,
jetzt meckert Delphi: Berufe.pas(614): E2003 Undefinierter Bezeichner: 'Sizeofchar' Hab keinen Plan.Was ist da wieder falsch?:oops:
Delphi-Quellcode:
procedure TForm17.Button2Click(Sender: TObject);
var myPDF : String; fs : TFileStream; begin fs:=TFileStream.Create('Temp\Dok.pdf',fmCreate or fmShareExclusive); myPDF := ADOTable1.FieldByName ('PDFFILE').AsString; fs.Write(mypdf[1],length(mypdf)*Sizeofchar); fs.Free; end; |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Das sollte wohl SizeOf(Char) heißen. Aber wieso der umständliche Weg über String, statt wie vorher direkt das BLOB-Feld zu benutzen? Du brauchst doch nur den "%Temp%"-Pfad, kannst dann mit GetTempFilename einen temporären Dateinamen generieren lassen und speicherst unter diesem Namen ab. Nun kannst Du den installierten Reader öffnen, warten, bis der wieder geschlossen wird und dann die temporäre Datei wieder löschen.
|
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Zitat:
Zitat:
Aber wo wurde vorher das BLOB-Feld genutzt? Ich hab's nochmal durchgelesen aber nichts gesehen. Gruß K-H |
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Im Ausgangspost und in #9 haben wir TBlobField.SaveToFile benutzt, deshalb war ich über den String als Puffer etwas verwundert.
|
AW: PDF in DB speichern und öffnen danach Proggi-Abstutz
Danke nochmal:thumb::thumb::thumb:
Hab es so gemacht:
Delphi-Quellcode:
procedure TForm17.Button2Click(Sender: TObject);
var myPDF : String; fs : TFileStream; begin fs:=TFileStream.Create('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('Temp\Dok.pdf'), nil, nil, SW_NORMAL) <= 32 then ShowMessage('Es ist ein Fehler aufgetreten,da in der Datenbank keine Pdf Datei gefunden wurde.'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:08 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 by Thomas Breitkreuz