@marabu
besser hätt ichs nicht schreiben können.
Zur Sache:
Ich stimme mit marabu voll überein. Ein schönes Textfile ist doch immer wieder was feines. Die älteren unter uns werden es noch kennen: Textdateien mit fester Satzlänge, Textdateien tabulatorsepariert usw. es gibt ME nichts schnelleres. Satzkennung an den Anfang z.B. die Systemzeit, dann die 15 Werte flat mit festem Offset oder wie auch immer daerein. Und wenn es dann mal ein paar Felder mehr werden, kann man die immer noch anhängen, so ein Satz kann laut String-Definition ja richtig gross werden.
Einen kleinen hätt ich da aber noch. Die Daten sollen 10 Jahre lang nachgehalten werden. Ich vermisse im Denkansatz noch einen Zwischenschritt: Wie sieht es mit der Datensicherheit aus? 500.000 Sätze in einer
Access, dbase,
paradox oder text Tabelle ist nicht wirklich viel. wenn die Datei aber ständig offen ist, wie soll sie dann zuverlässig gesichert werden?
Mein Vorschlag wäre wirklich Textfile auf Tagesbasis. Dann ist man datentechnisch auf der richtigen Seite:
1. Immer hübsch kleine Dateien, die am folgenden Tag geschlossen sind und nur noch so da stehen (sogenannte soda-Daten).
2. Flatfiles sind in die meisten
SQL-Server direkt oder mit wenig Aufwand einzulesen.
3. Flatfiles veralten nicht! Ich bin frei in all meinen Entscheidungen: Lese ich sie in
Access ein? Will ich im nächsten Jahr vieleicht ein vielleicht neues Office-Produkt nutzen? Steige ich um auf
SQL, auf welches auch immer? Es ist egal, die paar Millionen flachen Sätze hab ich in wenigen Stunden in dem Produkt meiner Wahl. Immer und immer wieder, falls nötig.
4. Siehe 1. Dateien geschlossen und sicherbar. Keine Datenbank kann kaputt gehen, kein Index kann sich zerstören, wenn die Hardware mal Daten spanabhebend verarbeitet, fehlen mir nur die Daten vom Ausfallzeitpunkt bis zu Reparatur. Meinetwegen kann ich auch einen anderen Rechner hinstellen, es fehlt die nicht erfasste Aus-Zeit. Dito bei Stromausfall, wo überhaupt noch zu klären wäre, läuft die Erfassung weiter oder haben wir dann andere Probleme...