Autor Beitrag
blaskito
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63

Win2003, 2008, 2012, WinXP, Win7
Delphi 6 Pers.
BeitragVerfasst: Mo 25.05.09 16:28 
Hallo,

ich bastel schon seit einiger Zeit an einer Anwendung rum, in der zu verschiedenen PCs Konfigurationsdaten und andere Sachen hinterlegt sind. Bislang bin ich mit INI-Dateien oder selbstgestrickten Textformaten immer ganz gut lang gekommen. Jedoch ist das Potential dieser Dateiformate jetzt erschöpft. Sequentielle Dateien haben ein Problem, wenn sich z.B. eine Record-Länge ändert, INI-Dateien bekommen Stress, wenn es um Mehrfachwerte geht.

Kurzum: eine sehr einfache Datenbank muss her. Die meisten DBs die frei verfügbar sind, sind jedoch entweder sehr mächtig oder mangels Doku schwer zu implementieren. Ich finde XML vom Ansatz her sehr interessant, konnte aber keinen Lösungsansatz "von der Stange" ausgraben.

Bevor ich jetzt anfange das Rad neu zu erfinden, wollte ich mal hören, ob jemand eine sehr schlanke Lösung kennt, Konfigurationen in einer Datenbank - nach Möglichkeit im Textformat - zu speichern. BDE, MSDE und MySQL habe ich schon als mögliche Kandidaten ausgeschlossen, weil ich zu der Anwendung keine weitere notwendige Software voraussetzen kann.

Hat jemand einen Tip?

Schöne Grüße aus dem Norden
blaskito
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 25.05.09 16:37 
Bastel dir doch ein eigenes kleines Dateiformat. Z.B. so:
ausblenden Quelltext
1:
2:
3:
4:
Int........ID der Information
Int........Typ der Information (z.B.: Integer/String/Stringlist/Bild, ...)
Int........Länge der Information
bel. Typ...Information selbst

Das lässt sich ggf. auch so gestalten, dass das Dateiformat erweiterbar ist, d.h. ältere Versionen können neuere Dateien lesen, indem sie Informationen mit unbekannten IDs einfach überlesen. Das ganze dann mit Hilfe von Streams lesen und schreiben - und schon ist dein eigenes kleines Dateiformat fertig. :D

Nur zum Speichern von einigen Konfigurationsdaten ist eine DB Overkill, finde ich. :nixweiss:

_________________
We are, we were and will not be.
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Mo 25.05.09 16:47 
Also durchs googeln habe ich dieses hier gefunden:
http://www.opensourcejahrbuch.de/download/jb2004/OpenSourceJahrbuch2004.pdf
Das läd bei mir ziemlich lange, aber ich hoffe, das hilft Dir
- auch wenn der Titel nicht so ganz mit Deinem Thema übereinstimmt.
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Mo 25.05.09 20:25 
Alternativ: SQLite3. Ein Wrapper für eine SQL-basierte Datenbank, einfach und unkompliziert zu bedienen.
blaskito Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63

Win2003, 2008, 2012, WinXP, Win7
Delphi 6 Pers.
BeitragVerfasst: Mo 25.05.09 21:41 
Hallo Leute,

vielen Dank für die schnellen Reaktionen.
@Gausi: Mit "Einigen Konfigurationsdaten" habe etwas untertrieben. Dahinter verbergen sich Netzwerkconfigs, verfügbare Dienste und offene Ports, Benutzerinfos, Software und eine ganze Menge mehr - eben alles, was man für Netzwerkmanagement halt so braucht. Den von dir geschilderten Ansatz habe ich auch schon verfolgt, bin aber dann doch irgendwann auf notwendige Relationen gestoßen, wo einfache DB-Funktionalitäten auf unterstem Niveau sinnvoll wären. Eine richtige DB ist da in jedem Fall mit Kanone auf Spatz geschossen. Sollte ich mit dem Tip von Regan nicht weiterkommen - das sieht auf den ersten Blick recht schmal aus- , werde ich den typisierten Ansatz weiterverfolgen.

@ffgorcky: Harter Stoff, klingt ziemlich theoretisch. Ich beiß mich mal durch.

Nochmals Danke
blaskito
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Mo 25.05.09 22:09 
Ich verstehe nicht ganz nach was du nun genau suchst? Die wohl kleinsten Datenbanken sind bereits aufgelistet worden und die selbst entwickelten Lösungen fallen für dich auch raus?!

Ich würde in deinem Fall mal genauer auf XML schauen, da du mit XML ein fertiges Format bekommst, welches mittlerweile Standard ist und damit von fast jeder Platform, Programmiersprach usw. verstanden wird. Damit solltest du mit dem nötigen kleinen Befehlen bereits eine Datenbankfunktionalität auf die Beine stellen können.

Sollte das nicht außreichen und du benötigst weitere Standards so existieren bereits XML-Datenbanken.
blaskito Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63

Win2003, 2008, 2012, WinXP, Win7
Delphi 6 Pers.
BeitragVerfasst: Mo 25.05.09 22:39 
Hi,

was ich suche ist eine Anwendung, für die ich nicht eine zusätzliche DB-Engine mitgeben muss oder die sogar einen Server braucht. Wie ich schon sagte, ist XML für mich durchaus interessant. Ich habe jedoch nicht ausreichend Zeit, mich in die XML-Programmierung einzuarbeiten. Deswegen suche ich evtl. nach einer Lösung von der Stange. Selbstentwickelt scheidet für mich grundsätzlich aber nicht aus. Im Gegenteil: Mir sind Sachen die ich selbst programmiert habe sogar lieber. Dafür reicht aber meine Zeit nicht.

Gruß
blaskito
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 26.05.09 00:26 
XML ist erst einmal sehr einfach zu implementieren, da bereits die entsprechende Funktionalität vorhanden ist. Einfach die Units XmlDoc und XmlIntf in die uses und schon klappt das wie z.B. hier:
www.delphipraxis.net...1041110.html#1041110

Da du aber von Relationen usw. geredet hast, ist eine richtige embedded DB wie das genannte SQLite vermutlich geeigneter. Die brauchen ja keine Installation, sondern nur eine oder mehrere DLLs, bei SQLite nur eine.