AGB  ·  Datenschutz  ·  Impressum  







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

Programmkonfiguration

Ein Thema von hanspeter · begonnen am 1. Sep 2006 · letzter Beitrag vom 1. Sep 2006
Antwort Antwort
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Programmkonfiguration

  Alt 1. Sep 2006, 09:56
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
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Programmkonfiguration

  Alt 1. Sep 2006, 10:13
Hi Hanspeter,

hier mal meine dürftigen Erfahrungen:

zu 1.)
Wenn Geld nicht das Thema (SQL Server) ist, dann auch lokal einsetzen. Du hast dann in Zukunft keine Probleme auch netzweit zu arbeiten. (spätere Umstellung auf Server - Client)

zu 2.)
Bei so geringen Daten merkt man wohl kaum einen Unterschied. Freibleibend zu den Gedanken zu erstens könnte man sich hier zu der Methode entscheiden, die einem persönlich am meisten liegt.

zu 3.)
Ich verwende gerne Ini-dateien. Diese kann man schnell und einfach für notwendige Vorkonfigurationen erstellen und im Installationssatz mit verpacken. Das Thema mehrere Dateien wird durch die Möglichkeit der Sektionen aber minimiert und das ganze bleibt übersichtlich.

zu 4.)
XML mag ich in der Programmierung nicht so sehr, aber das liegt sicher an der Übung. Für umfangreiche Daten find ich XML aber sehr gut.

zu 5.)
Ja, da gibt es noch das Thema Serialisierung. Hab ich mal in einem Projekt gemacht und ist so nicht schlecht. Spart viel schreibarbeit bei VCL-Objekten.


Gruß oki
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Programmkonfiguration

  Alt 1. Sep 2006, 11:31
Zitat:
Wenn Geld nicht das Thema (SQL Server) ist, dann auch lokal einsetzen. Du hast dann in Zukunft keine Probleme auch netzweit zu arbeiten. (spätere Umstellung auf Server - Client)
Ich verwende Firebird und das ist ohnehin kostenfrei.


Zitat:
Bei so geringen Daten merkt man wohl kaum einen Unterschied. Freibleibend zu den Gedanken zu erstens könnte man sich hier zu der Methode entscheiden, die einem persönlich am meisten liegt.
Ich habe mal lange an einem schweinisch teueren Projekt in der Versicherungsindustrie mitgearbeitet. Dahinter stand ein
international agierendes Softwarehaus.

Die waren so vorgegangen dass sie für die Datenbank einen SQL Server hatten (SQL Anywhere) und die gesamte Programmkonfiguration
in Accesstabellen abgelegt hatten.
So richtig hatte sich mir der Sinn nicht erschlossen. (außer das man die Tabellen mit Access pflegen kann)
Deshalb auch meine Frage wie andere es machen.

Mit Gruß Peter
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: Programmkonfiguration

  Alt 1. Sep 2006, 11:52
Hallo Peter,

Andreas Kosch hat mir für genau solche Situationen Deine Variante 1 empfohlen:
Zitat von hanspeter:
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.
Unter NET hat er meine Vermutung bestätigt, dass als lokale Datenbank eine XML-Tabelle das einfachste und schnellste wäre. Unter D5 würde ich dasselbe DBMS - bei Dir also Firebird - verwenden, damit einheitliche Zugriffe und Verfahren möglich sind.

Gruß Jürgen

PS. Ich kann doch annehmen, dass Andreas Kosch auch in der DP ein Begriff ist?
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Programmkonfiguration

  Alt 1. Sep 2006, 12:13
Zitat:
Unter D5 würde ich dasselbe DBMS - bei Dir also Firebird - verwenden, damit einheitliche Zugriffe und Verfahren möglich sind.
Ich arbeite mit D2006. Im Moment bin ich gerade dabei mal Zeitmessungen bei der Initialisierung aus einer Datenbank,
statt aus der Registry vorzunehmen.

Zitat:
PS. Ich kann doch annehmen, dass Andreas Kosch auch in der DP ein Begriff ist?
Ja ich habe ein paar Bücher von ihm, hat aber Delphi komplett den Rücken gekehrt.

Gruß Peter
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#6

Re: Programmkonfiguration

  Alt 1. Sep 2006, 12:18
Zitat von hanspeter:
Zitat:
PS. Ich kann doch annehmen, dass Andreas Kosch auch in der DP ein Begriff ist?
Ja ich habe ein paar Bücher von ihm, hat aber Delphi komplett den Rücken gekehrt.

Gruß Peter
Aber für Datenbanken und NET ist er natürlich trotzdem immer noch ein Fachmann. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Programmkonfiguration

  Alt 1. Sep 2006, 13:34
So ich habe ein bischen rumexperimentiert und bin zu einem eigentlich überraschenden Ergebnis gekommen.

Also Koinfiguration speichere ich z.B. beim Schließen eines Fensters immer die letzte Position und Größe in der
Registry.
Beim nächsten Öffnen des Fenster wird diese dann wiederhergestellt.

Beim Lesen/Schreiben der Einstellwerte aus der Registry dauert das zwischen 23 bis 26 Millisekunden.
Mach ich das Gleiche aus einer Firebirddatenbank (lokal Zugriff über IBObjects) dann benötigt dieser Vorgang 2 bis 3 ms.
In der Registry stehen einfach nur die Werte. In der SQL Datenbank selektiere ich noch nach User.

Ich bin etwas überrascht.

Gruß Peter
  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 18:12 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