AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PDF in Datenbank speichern

Ein Thema von HolgerCW · begonnen am 19. Aug 2013 · letzter Beitrag vom 21. Aug 2013
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

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

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 13:12
Wieso fehlt das Speichern? Wir reden doch beide von #3, oder?
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
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 13:30
Nee nicht das Speichern, sondern die gespeicherten Daten!
(Soll alles schon vorgekommen sein.)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 13:44
Nee nicht das Speichern, sondern die gespeicherten Daten!
(Soll alles schon vorgekommen sein.)
Also ich kann alle meine gespeicherten PDF- und HTML-Dateien anzeigen. Hab das eben mal stichprobenartig ausprobiert und keinerlei fehlende Daten festgestellt: Alle HTML- und PDF-Dateien werden von der Datenbank direkt in den integrierten Browser geladen und angezeigt.
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#4

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 13:49
Perlsau schrieb in #3 aber

Zitat:
und auch das Post erfolgt nicht in der Funktion. Die erledigt nur das reine Einlesen einer Datei in ein Blobfeld.
Wie wird also anschliessend der Stream der PDF in der Datenbank gespeichert ?

Gruss

Holger
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 14:20
Wie wird also anschliessend der Stream der PDF in der Datenbank gespeichert ?
Das reine Abspeichern der PDF-Datei im Blobfeld erledigt die genannte Funktion. In der aufrufenden Methode können aber noch weitere Zuweisungen von Daten an Tabellenfelder stattfinden, in diesem Fall nur ein Boolean-Feld:
Delphi-Quellcode:
    DatMod.Qset_NewsLink.Edit;
    DatMod.Qset_NewsLink.FieldByName('EXISTIERT').AsBoolean := Existiert;
    IF FileExists(Dateiname) THEN
    BEGIN
       DatMod.DateiToBlob(Dateiname,DatMod.Qset_NewsLink,DatMod.Qset_NewsLink.FieldByName('INHALT'));
       DeleteFile(Dateiname);
    END;
    DatMod.Qset_NewsLink.Post;
Das funktioniert so sicher & zuverlässig, daß ich die Quelldatei (ob nun PDF oder HTML) danach einfach löschen kann.
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#6

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 15:02
Alles klar.

Habe es jetzt mal für mich etwas umgebaut:

Delphi-Quellcode:
function Datensatz_speichern_PDF(Tabelle, Spalte, Filter_Spalte, Filter_Wert, Pfad:String; PDF_loeschen: Boolean):Boolean;
var
 S : TStream;
 FileS : TFileStream;
 BlobFeld: TField;
begin

 Result := FALSE;

 DM_Main.TableRaw.Close;
 DM_Main.TableRaw.TableName := Tabelle;
 DM_Main.TableRaw.IndexFieldNames := Filter_Spalte;
 DM_Main.TableRaw.Filter := Filter_Spalte + ' = ' + Filter_Wert + '';
 DM_Main.TableRaw.Filtered := TRUE;
 DM_Main.TableRaw.Open;
 DM_Main.TableRaw.Edit;

 BlobFeld := DM_Main.TableRaw.FieldByName(Spalte);

 S := BlobFeld.DataSet.CreateBlobStream(BlobFeld, bmReadWrite);

 try

  FileS := TFileStream.Create(Pfad, fmOpenRead);
  S.CopyFrom(FileS, FileS.Size);
  DM_Main.TableRaw.Post;
  Result := TRUE;

 finally

  FileS.Free;
  S.Free;

 end;

end;
Nur leider werden keine Daten gespeichert. Wo ist der Fehler ?

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 15:05
"Zurückspulen" vergessen?
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
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 15:10
Nur leider werden keine Daten gespeichert. Wo ist der Fehler ?
Wie stellst du fest, daß keine Daten gespeichert werden? In welchen Datensatz speicherst du deine Daten und welchen Datensatz überprüfst du daraufhin, ob er die PDF-Datei auch enthält?

Wenn ich das richtig sehe, speicherst du alles immer in den ersten Record (Open setzt den Datensatzzeiger auf den ersten Record). Möchtest du einen neuen Datensatz anlegen, dann muß es natürlich Append oder Insert statt Edit heißen. Wenn du einen bestehenden Datensatz bearbeiten möchtest, solltest du zuvor den gewünschten Datensatz lokalisieren.

Geändert von Perlsau (20. Aug 2013 um 15:15 Uhr)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#9

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 17:29
Habe es jetzt mal für mich etwas umgebaut:
Gibts da nicht auch irgendwo mal ein "Post" (damit die Daten zur Datenbank übertragen werden) und vieleicht auch ein Commit für die Transaktion?
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:07 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