[gelöst] Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
- Levario
- Beiträge: 132
- Registriert: Mo 1. Sep 2014, 14:32
- OS, Lazarus, FPC: Windows 11 Pro , MacOS und Linux Mint (Version 3.4 for Windows 64 bit )
- CPU-Target: 64 Bit
- Wohnort: Deutschland / NRW
[gelöst] Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
Hallo zusammen,
ich möchte verschiedene Daten in einer Datenbank speichern. Dafür verwende ich eine MYSQL Datenbank. Der Typ für die Datei ist mediumblob mit 16MB Speicherplatz. Diese Datenbank soll PDF Dokumente, Bilder (.jpg und .png), sowie E-Mails von Outlook (.msg) speichern können.
Für Images finde ich viele Beispiele online. Für PDFs und .msg leider nicht. Gibt es hier Möglichkeiten einen Blob in einen Stream zu kopieren und diesen in eine PDF Dokument oder .msg umzuwandeln?
Schreibt gerne Links oder erklärt es mir ich finde aktuell nichts dazu.
Gruß
Levi
ich möchte verschiedene Daten in einer Datenbank speichern. Dafür verwende ich eine MYSQL Datenbank. Der Typ für die Datei ist mediumblob mit 16MB Speicherplatz. Diese Datenbank soll PDF Dokumente, Bilder (.jpg und .png), sowie E-Mails von Outlook (.msg) speichern können.
Für Images finde ich viele Beispiele online. Für PDFs und .msg leider nicht. Gibt es hier Möglichkeiten einen Blob in einen Stream zu kopieren und diesen in eine PDF Dokument oder .msg umzuwandeln?
Schreibt gerne Links oder erklärt es mir ich finde aktuell nichts dazu.
Gruß
Levi
Zuletzt geändert von Levario am Do 1. Aug 2024, 13:10, insgesamt 2-mal geändert.
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).
- Levario
- Beiträge: 132
- Registriert: Mo 1. Sep 2014, 14:32
- OS, Lazarus, FPC: Windows 11 Pro , MacOS und Linux Mint (Version 3.4 for Windows 64 bit )
- CPU-Target: 64 Bit
- Wohnort: Deutschland / NRW
Re: Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
Ja nur wie gehe ich dann eine .pdf aus oder eine .msg? Für Images habe ich ja Komponenten in Lazarus.djdhg hat geschrieben: Do 1. Aug 2024, 10:19 Meinst du das hier: https://www.freepascal.org/docs-html/fc ... tream.html
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).
-
- Beiträge: 18
- Registriert: Mo 8. Apr 2013, 17:12
- OS, Lazarus, FPC: Win11, Debian 12.5, Lazarus: 2.2.6, FPC: 3.2.2
- CPU-Target: 64Bit
Re: (offen) Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
Spontan würde ich das erstmal so probieren:
Lg
https://www.freepascal.org/docs-html/rt ... tream.htmlfs:=TFileStream.Create('c:\test.pdf', fmOpenRead);
Lg
- Levario
- Beiträge: 132
- Registriert: Mo 1. Sep 2014, 14:32
- OS, Lazarus, FPC: Windows 11 Pro , MacOS und Linux Mint (Version 3.4 for Windows 64 bit )
- CPU-Target: 64 Bit
- Wohnort: Deutschland / NRW
Re: (offen) Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
Ich habe eine Lösung gefunden für PDF Dokumente und .msg Dokumente (Outlook): Für .jpg / .png / .eml funktioniert diese Methode nicht.
Bei Änderung des Dateityps nach z.B. .msg Speichert und öffnet er auch E-Mail im Outlook Format. Es kann sein das er nachfragt mit welcher Software die Datei geöffnet werden soll. OpenDocument nutzt das Programm das ihr als Favorit eingestellt habt.procedure TForm1.Button1Click(Sender: TObject);
var
ms : TMemoryStream;
begin
// Datenbank Abfrage mit Zeos
Form1.ZQuery1.SQl.Clear;
Form1.ZQuery1.SQL.Text := 'Select * FROM test';
Form1.ZQuery1.Open;
ms:=TMemoryStream.Create; // TMemorystrem erstellen
ms.Position:=0; // Memory Stream beginnt beim Zeichen 0
TBlobField(ZQuery1.FieldByName('datei')).SaveToStream(ms); // Datenbank Abfrage in den Stream ms speichern
ms.SaveToFile('E:\test.pdf'); // Dokument Speichern
ms.free; // ms MemoryStream freigeben
OpenDocument('E:\test.pdf'); /Dokument öffnen, unter uses wird LCLIntf benötigt
end;
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).
-
- Beiträge: 48
- Registriert: Fr 21. Feb 2020, 19:17
- OS, Lazarus, FPC: Win10/64
- CPU-Target: 64 Bit
- Wohnort: Osterholz-Scharmbeck
Re: [gelöst] Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
Wenn du neben dem Blob auch den Dateinamen speicherst, in deiner Tabelle, dann geht das für jeden Dateityp, wenn du den gespeicherten Namen verwendest.
- Levario
- Beiträge: 132
- Registriert: Mo 1. Sep 2014, 14:32
- OS, Lazarus, FPC: Windows 11 Pro , MacOS und Linux Mint (Version 3.4 for Windows 64 bit )
- CPU-Target: 64 Bit
- Wohnort: Deutschland / NRW
Re: [gelöst] Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
Hallo icho2099,
vielen Dank für die Info habe es gerade getestet und es funktioniert.
Es funktionieren alle Dateien, wenn man den Dateinamen des Ursprungs nutzt.
vielen Dank für die Info habe es gerade getestet und es funktioniert.
Es funktionieren alle Dateien, wenn man den Dateinamen des Ursprungs nutzt.
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).
- Zvoni
- Beiträge: 396
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: [gelöst] Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
Auch wenn "gelöst": Das wichtige ist die Datei-Endung (File-Extension), nicht der "Datei-Name".Levario hat geschrieben: Fr 2. Aug 2024, 21:33 Hallo icho2099,
vielen Dank für die Info habe es gerade getestet und es funktioniert.
Es funktionieren alle Dateien, wenn man den Dateinamen des Ursprungs nutzt.
Dein Fall klingt nach einem DMS, und von den DMS' die bei uns in der Firma im Einsatz waren/sind, war/ist der "ursprüngliche" Datei-NAME immer uninteressant.
Interessant war immer nur der Datei-Typ (Datei-Endung).
Bei einem Re-Export zurück aus der Datenbank raus wurde/wird nie der ursprüngliche Datei-Name vergeben, sondern nach einem bestimmten Algoritmus ein generischer Name vorgeblendet (Welcher dann in einem "SaveAs"-Dialog entsprechend dann geändert werden kann)
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
- Levario
- Beiträge: 132
- Registriert: Mo 1. Sep 2014, 14:32
- OS, Lazarus, FPC: Windows 11 Pro , MacOS und Linux Mint (Version 3.4 for Windows 64 bit )
- CPU-Target: 64 Bit
- Wohnort: Deutschland / NRW
Re: [gelöst] Lazarus MYSQL mit ZEOS mediumblob Datenstreams für .pdf / .jpg / .png / .msg Dokumente
Danke ich habe es getestet und es funktioniert mit allen Dateien, wenn man den richtigen Namen nimmt.
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).