AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?
Thema durchsuchen
Ansicht
Themen-Optionen

PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

Ein Thema von ickehausen · begonnen am 6. Jul 2011 · letzter Beitrag vom 7. Jul 2011
Antwort Antwort
Seite 1 von 2  1 2      
ickehausen

Registriert seit: 29. Jul 2004
85 Beiträge
 
Delphi 2010 Enterprise
 
#1

PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 6. Jul 2011, 12:47
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBX
Hallo,

ich würde gern ein PDF-Dokument in ein BLOB-Feld in der Datenbank einlesen und anschließend in einem Programmfenster wieder anzeigen können. Jetzt meine Fragen:

Ist das irgendwie machbar (keine Kaufkomponenten da es sich um ein gemeinnütziges Projekt handelt.) und leidet evtl. darunter die Performanz, da sich die DB doch stark aufbläht.
Das PDF-Dokument separat abspeichern hat halt den Nachteil, dass bei einer Sicherung wieder mehr Fehlerquellen vorhanden sind.

Gruß
Frank
Es gibt keine dummen Fragen ...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 6. Jul 2011, 12:52
Datei in Temp-Ordner auslagern und dann Aufrufen
Markus Kinzler
  Mit Zitat antworten Zitat
ickehausen

Registriert seit: 29. Jul 2004
85 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 6. Jul 2011, 14:29
Hallo Markus,

danke für die schnelle Antwort. Mit JPG-Dateien funktioniert es, aber bei PDF-Dateien erhalte ich beim temporären Zwischenspeichern eine Datei, die der Reader nicht mehr lesen kann.
Und die Frage nach der Performanz, weißt Du da eine Antwort drauf?

Gruß
Frank
Es gibt keine dummen Fragen ...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 6. Jul 2011, 14:54
Ich mache das auch so. Bei mir funktioniert es?
Blobs werden getrennt von den restlichen Daten gespeichert. Diese bremsen den ugriff deshalb nicht aus. natürlich dauert das Auslagern und anschliessende Löschen jedesmal etwas Zeit.
Markus Kinzler
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#5

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 6. Jul 2011, 14:58
Gerade Firebird hat (im Gegensatz zu z.B. mySQL) eine sehr gute BLOB-Performance.
In manchen Blogs wird sogar behauptet, Firebird sei in manchen Fällen sogar schneller als das Dateisystem.

Warum der Reader deine PDFs nicht mehr lesen kann, verstehe ich nicht so ganz.
BLOBS sind rein binäre Daten, die Datei-Endung oder was für einen MimeTyp man darin speichert ist völlig egal.
Was rein geht, wird nicht verändert, binär halt.
Evtl. ein Fehler beim Speichern der PDF in den BLOB in deiner Applikation?

Geändert von blackfin ( 6. Jul 2011 um 15:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 6. Jul 2011, 15:02
Ich vermute auch, dass entweder beim Speichern oder beim Auslesen etwas nicht stimmt.
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
Tyrolean

Registriert seit: 3. Jul 2003
76 Beiträge
 
Delphi 7 Professional
 
#7

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 6. Jul 2011, 18:22
Datei in Temp-Ordner auslagern und dann Aufrufen
Vernünftig, aber die einzige Frage die sich mir da immer stellt ist, wie kann ich diese Temp-Dateien wieder loswerden. Momentan lass ich sie einfach und hoffe irgendwer räumt auf, aber wie macht man das optimal? (gleich löschen geht nicht, da das PDF zB ja noch offen sein kann, während das Programm weiterläuft)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 6. Jul 2011, 18:26
gegf. eine eigenen Unterordner anlegen, dessen Inhalt bei Start und Ende des Programmes versucht wird aufzuräumen...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 7. Jul 2011, 09:33
Oder Programm starten und auf dessen Ende warten. Anschließend versuchen, die Datei wieder zu löschen (das muss beim Adobe Reader nicht unbedingt funktionieren, deshalb Betonung auf versuchen). Oder AFAIK gab es eine Art FileMode, der bestimmt, dass diese Datei nach einem Reboot automatisch gelöscht wird, finde ich nur gerade 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
blackfin
(Gast)

n/a Beiträge
 
#10

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 7. Jul 2011, 09:38
1) Beim Beenden des Programms versuchen, die Temp-Dateien zu löschen.
2) Wenn eine Datei im Zugriff ist (kann man ja feststellen), die Datei überspringen.
3) Beim nächsten Start des Programms oder jedesmal, bevor eine neue Datei vom Programm im Temp-Ordner angelegt wird,
nach alten Dateien des Programms im Temp-Ordner suchen (gute Namenskonventionen vorausgesetzt) und versuchen, diese zu löschen.

Der von DeddyH angegebene "FileMode" ist soviel ich weiss eine MoveFileEx WinAPI-Operation mit dem Flag MOVEFILE_DELAY_UNTIL_REBOOT :
Delphi-Quellcode:
// ungetestet, vorher nochmal nachlesen!! :-D
MoveFileEx('C:\Windows\temp\gesperrte.pdf','',MOVEFILE_DELAY_UNTIL_REBOOT); // kann auch sein, dass statt '' NULL oder nil stehen muss..

Geändert von blackfin ( 7. Jul 2011 um 09:53 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:05 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