Hallo,
ich möchte einmal fragen, wie Ihr so die Programmkonfiguration, Zusatzinformationen u.s.w. speichert?
Die Ausgangssituation.
Ein größeres Projekt arbeitet mit einer Firebird Datenbank.
Neben der Datenbank gibt es (getrennt) eine Systemdatenbank, welche alle Daten rund um das Projekt enthält.
Das beginnt bei PLZ- und BLZ-Verzeichnis über Reportvorlagen bis zu Lookup Tabellen. (Also Schlüsselwort - Kennung)
Die ursprüngliche Idee, die Systemdatei zentral auf dem Server anzuordnen verlangsamt das Programm. Deshalb gibt es auf
jedem Client eine Kopie dieser Datenbank.
Programmeinstellungen wie Fensterpositionen speichere ich in der Registry.
Jetzt kommen noch eine Vielzahl neuer Einstellungen (z.B. Gridheader) dazu. Das ganze möchte ich auch noch personalisieren.
Dazu möchte ich von der Registry wegkommen, da dann größere Datenmengen anfallen.
Meine Überlegungen sind nun folgende.
1. Es gibt weiter eine zentrale Systemdatenbank.
Beim Programmstart vergleicht das Programm die Versionsnr. der Server mit der Systemdatenbank.
Liegt auf dem Server eine höhere Versionsnr. vor, wird über Backup/Restore eine lokale Kopie gezogen.
Wobei hier die Frage ist, bei einer ausschließlich lokal eingesetzten Datenbank, lohnt sich da überhaupt eine
SQL Datenbank?
2. Da kaum Indizierungen vorgenommen werden müssen und der Datenbestand immer begrenzt ist, (z.B. etwa 50 Druckvorlagen)
erfolgt die Datenspeicherung nicht in einem
SQL Server, sondern in einer Tabelle. Hier käme dann z.B. TMemoryTable oder
eine
Access-Tabelle in Frage.
Ist der Datenzugriff dann soviel schneller?
3. Die Ablage erfolgt in Ini-Dateien. Vorteil wäre die manuelle Änderung, Nachteil es entstehen eine Vielzahl von
Dateien.
4. Ablage als
XML Datei und laden über einen
XML Provider.
Vorteil wäre hier wieder die manuelle Änderungsmöglichkeit.
5. Habe ich noch eine Möglichkeit übersehen???
Gruß Peter
Welchen Weg würdet Ihr bevorzugen oder gibt es noch andere Möglichkeiten, welche ich übersehen habe?
Gruß
Peter