Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Sqlite nicht in eine Datei, sondern in einen TStream (https://www.delphipraxis.net/201135-sqlite-nicht-eine-datei-sondern-einen-tstream.html)

Der schöne Günther 26. Jun 2019 09:22

Datenbank: Sqlite • Version: 3 • Zugriff über: FireDAC

Sqlite nicht in eine Datei, sondern in einen TStream
 
Ich habe Daten die in eine Sqlite-Datenbank exportiert werden sollen. Das kann etwas groß werden, durch ZIP-Kompression bekommt man die Datei typischerweise auf 1/20 oder weniger.

Ich möchte vermeiden eine Sqlite-Datei in einem Temp-Verzeichnis anzulegen, das dann zu zippen und dann die Sqlite-Datei zu löschen.

Ich sehe dass in Delphi Sqlite schon einmal komplett im Hauptspeicher sein kann (@DocWiki), das sind ja schon einmal sehr gute Voraussetzungen.

Jetzt hänge ich daran wie ich das in einen Memory-Stream bekomme um es zu zippen.


Bonus: Sqlite scheint auch direkt ZIP-Unterstützung an Bord zu haben (Quelle: Sqlite.org), aber in FireDAC habe ich da nichts dergleichen gesehen dass das abbildet.

Neutral General 26. Jun 2019 12:18

AW: Sqlite nicht in eine Datei, sondern in einen TStream
 
Ich glaube nicht dass du eine Datenbank die sich aktiv im Arbeitsspeicher befindet und auf der (potenziell) gearbeitet wird zippen kannst/solltest.

Der schöne Günther 26. Jun 2019 13:56

AW: Sqlite nicht in eine Datei, sondern in einen TStream
 
Es ist Sqlite, kein Client/Server-System im Netzwerk. Da tut meine Anwendung einmal Daten rein und macht danach zu.

p80286 26. Jun 2019 22:23

AW: Sqlite nicht in eine Datei, sondern in einen TStream
 
Könntest du bitte näher erklären was Du vor hast?
Wie Neutral General schon schreibt, von einer DB auf die Dein Programm zugreift, solltest Du die ZIP-Finger lassen.
Sobald Du die DB-Aktivitäten abgeschlossen hast, ist/sind die Datei(en) Dateien wie alle anderen auch. Die kannst Du dann Zippen wie Du lustig bist.

Gruß
K-H

Bernhard Geyer 26. Jun 2019 22:39

AW: Sqlite nicht in eine Datei, sondern in einen TStream
 
SQLite kann scheinbar selbst keine komprimierung, aber es gibt extensions:

http://www.hwaci.com/sw/sqlite/prosupport.html

Ich würde aber evtl. eine anderes DBMS nutzen/suchen/verwenden, welche die gewünschten Funktionen "out of the box" bietet.

Rolf Frei 27. Jun 2019 11:59

AW: Sqlite nicht in eine Datei, sondern in einen TStream
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1435364)
Ich habe Daten die in eine Sqlite-Datenbank exportiert werden sollen. Das kann etwas groß werden, durch ZIP-Kompression bekommt man die Datei typischerweise auf 1/20 oder weniger.

Ich möchte vermeiden eine Sqlite-Datei in einem Temp-Verzeichnis anzulegen, das dann zu zippen und dann die Sqlite-Datei zu löschen.

Wieso nicht? Was ist das Problem damit? An der Grösse kann es ja nicht liegen. Auf der HD da hast du ja viel mehr Speicherplatz als im Memory.

Mavarik 30. Jun 2019 13:57

AW: Sqlite nicht in eine Datei, sondern in einen TStream
 
OK es ist warm... Also nicht in meinen Büro, da ist ne Klimaanlage... Aber trotzdem hab ich das jetzt 5x gelesen und immer noch nicht verstanden...

Zitat:

Zitat von Der schöne Günther (Beitrag 1435364)
Ich habe Daten die in einer Sqlite-Datenbank exportiert werden sollen.

In <> exportiert...

Möchtest Du Dateien in eine SQLite Datenbank-importieren oder Daten aus eine SQLite-Datenbank exportieren?


Zitat:

Zitat von Der schöne Günther (Beitrag 1435364)
Ich möchte vermeiden eine Sqlite-Datei in einem Temp-Verzeichnis anzulegen, das dann zu zippen und dann die Sqlite-Datei zu löschen.

Also doch SQLite->ZIP aber warum dann SQLite-DB löschen? Womit willst Du den arbeiten?

Zitat:

Zitat von Der schöne Günther (Beitrag 1435402)
Da tut meine Anwendung einmal Daten rein und macht danach zu.

OK - und was soll dann der Zip? Willst Du die Daten gezippt irgendwo hin übertragen?

Grüsse

Mavarik :coder:

p80286 30. Jun 2019 21:23

AW: Sqlite nicht in eine Datei, sondern in einen TStream
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1435402)
Es ist Sqlite, kein Client/Server-System im Netzwerk. Da tut meine Anwendung einmal Daten rein und macht danach zu.

Also Du hast irgendwelche Daten, die Du in eine SQLite-DB geschrieben hast. Diese Daten (SQL-DB) willst Du jemandem zukommen lassen. Dann zip sie und verschick die Zip-Datei.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 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