AGB  ·  Datenschutz  ·  Impressum  







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

"Gemischte Daten" abspeichern

Ein Thema von sko1 · begonnen am 16. Okt 2017 · letzter Beitrag vom 17. Okt 2017
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#1

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 11:59
Es gibt auch von XML eine komprimierte "binäre" Version.

Und unkomprimiert, als Base64, sind Binärdaten auch nur 33% größer. (ohne Komprimierung lässt sich sowas auch locker auf annähernd 15% bekommen, wenn man mehr als 64 der ersten 128 Zeichen verwendet)
Also eigentlich fällt es kaum auf, bei den Exabyte, die wir sonst so rumliegen haben.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Okt 2017 um 12:04 Uhr)
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 12:02
Access oder SQLite wären Einzeldateien. Gibts noch andere gründe keine DB zu verwenden ?
Chris
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 12:12
Unter Einzeldatei würd' ich in dem Zusammenhang verstehen:

eine Information -> eine Datei

Man müsste etwas genauer wissen, was für Informationen zu welchem Zweck hier verwaltet werden sollen, dann kann man sinnvoll über Alternative Speichermöglichkeiten nachdenken.

So ist's etwas dürftig.

Gegen eine Datenbank spricht nur:

Man müsste ggfls. das konzeptionelle Vorgehen der bisherigen Lösungsansätze überdenken

Geändert von nahpets (16. Okt 2017 um 13:40 Uhr)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#4

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 12:54
mein Ansatz für "mehrere Infos pro Datensatz" gleich "eine Datei":

Ich verwende da eine normale Archivdatei als Container (meist 7z oder zip)... da sind alle Streams und Infos als Dateien drin, und künnen sogar mit Standardprogrammen geöffnet werden. Das geht mit benannten ".txt",".csv"...".xyz" Streams auch völlig im RAM ohne zusätzliche "TempFiles".
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 13:17
Bedeutet kurz und knapp:

Aus meinem Ansatz mit Datenbank und Datensatz wird aus jedem Datensatz eine Datei. Der "Rest" kann letztlich in ähnlichem Zusammenhang in jeder Datei (= jedem Container) abgelegt werden.

Ist auch eine Möglichkeit.

Jede Datei enthält dann z. B. eine Textdatei mit den Infos aus Beschreibung und Type und zusätzlich die gepackte eigentliche Information.

Das kann man insgesamt im Programm dann fast wie eine Datenbank händeln.

Passende Klasse bauen und es wird für den Anwender recht transparent, kann in 'nem Tree, ListView, Stringgrid ... übersichtlich angezeigt und verwaltet werden ...
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
601 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 13:19
Ihr seid ja klasse!

Langsam kann ich mich mit der SQLite-Version auch anfreunden, Ziel (oder besser Vorgabe) ist es eben eine Datei pro "Sammelsurium" zu bekommen.

Jetzt schwanke ich nun zwischen 3 verschiedenen Lösungsansätzen...

Ciao
Stefan
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 13:39
Eine Datenbank ist letztlich ein Sammelsorium von Daten.

Eine Datenbank für Tipps rund um Delphi.
Eine Datenbank für Tipps rund um Datenbanken.
Eine Datenbank für Rezepte.
Eine Datenbank für Reisebeschreibungen.

Wenn alle die gleiche Struktur haben, kannst Du durch (dialoggesteuerten Wechsel) der Datenbank aus einer Tippverwaltung eine Rezepteverwaltung machen.

Daternbanken sind nicht zwingend was ominös überdimmensioniertes, das auch Daten enthält.

Sie sind ggfls. auch einfach nur ein kleiner Container für eine überschaubare Datenmenge.

Sinn ist letztlich die strukturierte Ablage von Daten zwecks einfacher Verwaltung von zusammengehörigem.

Und wenn eine Datenbank nur eine Tabelle enthält? Dann ist das halt so.

Und das schön daran ist:

Wenn in jedem Datensatz der Typ steht, kannst Du über die Abfrage des Typs in einer If-Kaskade oder per Case, sehr einfach die Inhalte der Blobspalte auslesen.

Sinngemäß ungefähr sowas:
Delphi-Quellcode:
Case Datensatz.FieldByName('Type').AsInteger of // oder ein Aufzählungstyp?!?
  1: IntegerVariabel := Datensatz.FieldByName('Blob').AsInteger;
  2: StringVariabel := Datensatz.FieldByName('Blob').AsString;
  3: Memo.Add(Datensatz.FieldByName('Blob').AsString);
  4: ImageLaden('http://www.delphipraxis.net/117340-blob-per-stream-aus-db-lesen-und-imageview-anzeigen.html');
else
  ShowMessage('Upps, unbekannter Typ.');
end;
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 13:44
Da mag jetzt jeder seine Vorlieben haben.
Gerade die Unterschiedlichen Datentypen schreien geradezu nach einer Datenbank.
Alleine der Vorteil die Daten auch direkt Visualisieren zu können (fast ohne eine Codezeile)
Chris
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

AW: "Gemischte Daten" abspeichern

  Alt 16. Okt 2017, 13:58
Habe mir mal eine Textverwaltung geschrieben.

Mehrere Datenbanken (unterschiedlichster Typen (MSSql, Oracle, PostGres, FireBird, Access)) können per Dialog ausgewählt werden.

Jede Datenbank hat eine (wesentliche) Datentabelle.
Die Struktur ist immer gleich.

Enthalten sind Rezepte, Romane (zur EPub-Erstellung), diverser Informationssammlungen ...

Alle können einheitlich mit einem Programm "verarbeitet" werden.

Neu Sammlung?

Neue Datenbank, Tabelle anlegen, dafür sorgen, dass die Datenbank ausgewählt werden kann und schon sind alle Funktionalitäten verfügbar.

Als kleinsten Nenner für die "Datenbankunabhängigkeit" hab' ich mich für die ADO-Komponenten entschieden.

Die Datenbanken kann man daher über den Connctiondialog von TADOConnection auswählen. Ggfls. muss man vorher 'nen ODBC-Treiber einrichten.

Da es sich hier nicht um Hochleistungssysteme handelt, halt' ich diese schon etwas antiquierte Technik für durchaus ausreichend.


Macht man sowas neu und nutzt SQLite, wählt man über 'nen Dialog die passende Datenbankdatei aus und hat mit sehr wenig Aufwand recht schnell eine Software, mit der man "grenzenlose" Mengen von unterschiedlichsten Daten verwalten kann, ohne sie miteinander vermischen zu müssen.
  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 16:49 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-2025 by Thomas Breitkreuz