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
 
HolgerCW

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

AW: PDF in Datenbank speichern

  Alt 20. Aug 2013, 11:52
Ich verstehe selber zur Zeit gar nichts mehr.

Es geht mir darum, dass mir vielleicht eine andere Möglichkeit aufgezeigt wird eine PDF-Datei in eine Tabelle mit einer LONGRAW-Spalte zu schreiben, als wie ich Sie benutze, da komischerweise an bestimmten PC's (Ich nenne Sie mal CN-PCs) bei uns im Hause zwar mit meiner Eingangs geposteten Funktion ein Stream gespeichert wird, dieser aber nicht mehr ausgelesen werden kann ?

Soll heissen:

Folgende Auslesefunktion funktioniert bei allen PC's:

Delphi-Quellcode:
function Datensatz_auslesen_Picture_PDF(Tabelle, Spalte, Filter_Spalte, Filter_Wert, Pfad:String):Boolean;
var
 fs: TFileStream;
 blob: TStream;
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;

 if DM_Main.TableRaw[Spalte] = 'then exit;

 blob := DM_Main.TableRaw.CreateBlobStream(DM_Main.TableRaw.FieldByName(Spalte), bmRead);
 blob.Seek(0, soFromBeginning);

 fs:=TFileStream.Create(Pfad, fmCreate);
 fs.CopyFrom(blob, blob.Size);

 fs.Free;
 blob.Free;

 Result := TRUE;

end;
Folgende Funktion speichert den Stream in der Datenbank. Nur wenn der Stream über die CN-PCs gespeichert wird kann man diesen Stream mit der obigen Funktion nicht mehr laden.

Delphi-Quellcode:
procedure Datensatz_speichern_Pictures_PDF(Tabelle, Spalte, Filter_Spalte, Filter_Wert, Pfad:String; PDF_loeschen: Boolean);
var
 ms, outstream: TMemoryStream;
begin

 ms := TMemoryStream.Create;
 outstream := TMemoryStream.Create;
 outstream.LoadFromFile(Pfad);
 outstream.Seek(0, soFromBeginning);

 DM_Main.QueryRaw.Close;
 DM_Main.QueryRaw.SQL[1] := Tabelle;
 DM_Main.QueryRaw.SQL[3] := Spalte;
 DM_Main.QueryRaw.SQL[5] := 'WHERE ' + Filter_Spalte;
 DM_Main.QueryRaw.ParamByName('p_pdf').SetBlobData(outstream.Memory, outstream.Size);
 DM_Main.QueryRaw.ParamByName('p_auftragsnummer').asstring := Filter_Wert;
 DM_Main.QueryRaw.ExecSQL;

 ms.Free;
 outstream.Free;

 if PDF_loeschen = true then
 begin

  DeleteFile(Pfad);

 end;

end;
Es geht mir darum eine andere Möglichkeit des speicherns von PDF-Dateien in eine Datenbank aufgezeigt zu bekommen, oder eventuell mal Hinweise was ich an der "Speicher-Funktion" mal testweise verändern sollte um dem Fehler auf den Grund zu gehen ?

Gruss

Holger
  Mit Zitat antworten Zitat
 


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:00 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