Download mehrerer Tabellen als ZIP-Archiv

Mit dem folgenden Menü kann ein Download erstellt und, falls gewünscht, gestartet werden. Ein Download faßt eine oder mehrere Tabellen zusammen, der Webserver holt sich die Daten aus der Datenbank, exportiert sie in eines oder mehrere der gewünschten Formate und packt alle Ergebnisse in ein ZIP-Archiv, welches dem Nutzer als temporärer Link bereitgestellt wird. Die Grunddaten werden im folgenden Menü festgelegt:

SuchenNeue TabelleSpeichernAbbruch



Hilfe
Übersicht  (0/0)
 < 1 > 
 +    Beispiel-Download (N)
Id
Download-Name *
als Text (ODBC + Währung) *
als Text (Unicode - Währung) *
als NET-DataSet *
als Access-DB *
Access-Version
Spaltennamen in erster Zeile *
Trenner für Spalten *
Datum/Zeit (ODBC) *
Datumsformat *
Zeitformat *
Dezimal-Symbol *
Währungssymbol *
Währungs-Format (+) *
Währungs-Format (-) *
Download-Status *
Download starten
Owner

Löschen

Die vier Download-Typen exportieren die Daten wie folgt:

  • als Text (ODBC + Währung): Dies erzeugt Textdateien, wobei der Export den ODBC-Regeln entspricht. Hier können das Währungszeichen und das Format der Währungsspalten explizit mittels der Menüs <Währungssymbol> sowie <Währungsformat> festgelegt werden. Ferner wird das kombinierte Format <Datum/Zeit (ODBC)> verwendet, um Datum und Uhrzeit zu formatieren. Zu beachten ist, daß ODBC nur diese Kürzel yyyy, MM, dd für Datumsangaben sowie hh, nn und ss für Uhrzeiten unterstützt. Unicode-Daten werden fehlerhaft exportiert. Eine Tabelle 'Artikel' wird in eine Datei 'Artikel.txt' exportiert, die zugeordnete schema.ini liegt dem Zip-Archiv bei.
  • als Text (Unicode - Währung): Dies ist ein selbstdefiniertes Format, welches das Ado-Dataset in eine Textdatei transferiert. Unicode wird komplett unterstützt, Währungen werden als Dezimalzahlen ausgegeben. Da Dezimalzahlen gewöhnlich problemlos in Währungsformate konvertiert werden können, ist diese Einschränkung akzeptabel. Das Dezimal-Symbol wird hier ebenfalls berücksichtigt. Die Datums- und Zeitformate müssen getrennt angegeben werden. Hier sind jedoch alle unter Formate für Datum / Zeit für Datumsangaben sowie unter Formate für Zahlen für numerische Formate aufgeführten Definitionen zulässig. So kann bsp. der Tag und der Monat als Wort ausgegeben werden.
  • als NET-DataSet: Diese Version liefert das NET-DataSet in der Standard-Xml-Version aus, wie es durch DataSet.WriteXml() erzeugt wird. Eine solche Darstellung kann nützlich sein, falls die Daten mit einem NET- oder Xml-basierten Programm weiterverarbeitet werden sollen.
  • als Access-Datenbank: Dies exportiert alle gewünschten Tabellen in eine Access-Datenbank mit dem Format, welches in der darauffolgenden Zeile festgelegt wird. Wenn der Download möglichst klein sein soll, wird Access-97 empfohlen. Dieses Format kann von späteren Access-Versionen konvertiert werden. Alle Formate können bsp. von Word als Quelle für Serienbriefe genutzt werden. Der Dateiname lautet 'download-97.mdb', 'download-2000.mdb' oder 'download-2002.mdb'.
Anschließend muß dem Download mindestens eine Tabelle hinzugefügt werden. Hierfür steht das folgende Menü zur Verfügung:

SuchenNeue TabelleSpeichernAbbruch



Hilfe
Übersicht  (1/1)
 < 1 > 
 -    Beispiel-Download
   - Artikel
   - Umsatz
Id
Tabellen-Name *

Löschen

Wird ein neu erstellter Download anschließend gespeichert, so wird er nicht automatisch gestartet. Der Start erfolgt nur, falls die Option unter <Download starten> explizit gesetzt ist und der Download aktiv ist.

Die Ausführung eines Downloads erfolgt, falls die Startoption auf 'Ja' gesetzt ist. Zum wiederholten Ausführen eines bereits definierten Downloads genügt es, diesen aufzurufen, die Startoption zu aktivieren und den Download zu speichern. Wurden keine Änderungen vorgenommen, so werden die Daten nicht zum DB-Server gesandt, so daß die Speicherberechtigung nicht geprüft wird. Der Start erfolgt anschließend vom Webserver in einem eigenen, neu gestarteten Thread. Der Benutzer kann nach dem Downloadstart regulär weiterarbeiten oder sich abmelden. Nutzt er das interne Menü weiterhin, so wird oberhalb des Menüs ein Hinweistext eingeblendet, der über den Downloadstatus informiert und einen Link zum Abbrechen bereitstellt. Dieser Text sowie der Link ist nur für den Nutzer sichtbar, welcher den Download gestartet hat. Der eigentliche Downloadthread nimmt zunächst eine Berechtigungsprüfung vor, transferiert anschließend die Tabellen in Portionen von 64 KB vom Datenbankserver zum Webserver und faßt sie am Ende wieder zu Dateien, diese am Schluß zu einem ZIP-Archiv zusammen. Schließlich werden drei Links zum Download der Zip-Datei, zur Bestätigung, daß dieser korrekt war und zum Abbruch bereitgestellt.

Sicherheit

Um einen Download zu erstellen, sind globale oder spezifische Objekterstellungsrechte notwendig. Für die Ausführung eines Downloads ist nur das Execute-Recht notwendig. Bei der Ausführung wird nicht die Identität des Download-Starters, sondern die Identität des Download-Besitzers verwendet, um zu prüfen, ob dieser Leserecht für die gewünschten Tabellen besitzt. Nur wenn alle zum Download gewünschten Tabellen gelesen werden dürfen, wird der Download begonnen. Analog zur Situation für Uploads verhindert dieser Identitätswechsel bei der Berechtigungsprüfung, daß ein Nutzer mit dem Recht, Downloads zu erstellen sowie keinen Leserechten für gewisse Tabellen, einen Download für diese Tabellen erstellt und einem Nutzer mit Leserecht an diesen Tabellen die Execute-Berechtigung erteilt.

Download von Protokolldaten

Zusätzlich zu den benutzerdefinierten Tabellen können die Protokolldaten downgeloadet werden. Hierfür steht eine Pseudotabelle '_Protocol' zur Verfügung. Als Berechtigung ist das StvAdmin-Recht für den Objekttyp Protokoll notwendig. Damit ist für den Download der Protokolldaten ein höheres Recht als 'Protokolldaten lesen', 'alle Daten lesen' oder das globale Execute-Recht notwendig. Derzeit wird dieser Download allerdings nur im rohen Format angeboten, falls die Daten vor einem Löschen von Altdaten exportiert und gesichert werden sollen.

Zip-Format: Eine Einschränkung

Zum Zippen wird die Klasse java.util.zip aus dem NET-Paket für Java genutzt. Für diese ist laut Dokumentation ein Bug bekannt: Das erzeugte ZIP-Archiv hat Fehler im Header. Dieser Fehler macht sich nur bemerkbar, falls dem Archiv weitere Dateien hinzugefügt werden. Das Entpacken dieses Archivs funktioniert problemlos. Da beim Download nur ein Entpacken der Daten sichergestellt sein muß, wurde dieses Tool trotz dieser Einschränkung genutzt.

Weitere Hinweise

Von jeder Datenbank kann immer nur ein Download aktiv sein. Dieser wird bei der Suche mit '(A)' (aktiv) gekennzeichnet. Da Downloads aufgrund der portionsweisen Verarbeitung der Daten relativ viel Zeit benötigen können, gibt es zwei Möglichkeiten für einen Abbruch. Der Nutzer, der diesen Download gestartet hat, kann ihn über den eingeblendeten Link direkt abbrechen. Oder ein Nutzer mit Schreibberechtigung für den Download-Datensatz ändert dessen Status auf 'inaktiv'. Dies unterbricht den Download ebenfalls. Falls während eines Downloads der Webserver neu gestartet werden muß, der Nutzer also einen Abbruch der Verbindung beobachtet, so wird der Download im Hintergrund neu gestartet und dort fortgesetzt, wo er unterbrochen worden ist. Der Link wird 24 Stunden lang bereitgestellt. Diese Zeit verlängert sich, falls während der Bereitstellungszeit der Webserver neu gestartet werden sollte.



Kontaktformular:

Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!

Die Erläuterungen zum Datenschutz habe ich gelesen und stimme diesen zu.

© 2003-2018 Jürgen Auer, Berlin.