2011-06-10: unfertig; vorbereitet für eine Publikation in PCNEWS Alle modernen Portalsysteme benutzen Datenbanken zur Steuerung des Inhalts, des Aussehens und der Kommunikation mit den Benutzern. Mitglieder von ClubComputer verfügen über kostenlosen Webspace und können dort ohne weitere Kosten eine Access-Datenbank betreiben. Aber nur wenige nutzen diese Möglichkeit, weil sie doch einiges Know-How über den Umgang mit den Zugriffen erfordert. In diesem Artikel wird der kostenlose Visual Web Developer 2008 benutzt, um die Zugriffsmechanismen zu beschreiben. Eine Einführung in die Arbeitsweise mit diesem Tool gibt es in PCNEWS-117, Seite 18. Grundsätzlich kann man Daten auch in Textdateien ablegen, doch bei einer größer werdenden Zahl von Daten wird der Zugriff rasch zu langsam, ganz zu schweigen von der Komplexität beim sequenziellem Lesen und Schreiben in Textdateien. Eine Access-Datenbank für den Einstieg hat viele Vorteile. Man kann die Datenbank mit Microsoft Office 2007 entwerfen. Alle erforderlichen Abfragen können getestet werden und die bei der Programmierung erforderlichen Sql-Anweisungen können direkt aus Access entnommen werden. Die Datenbank besteht aus nur einer Datei, der Upload auf den Server ist daher denkbar einfach. Wer mit Access nicht vertraut ist, kann zum Beispiel den Kurs von Karel Štípek „besuchen“. Siehe PCNEWS-Ausgaben 101, 102, 103, 104.
Die einfachste Nutzung einer solchen Datenbank besteht in der Speicherung variabler Daten in einer Tabelle. Beispielsweise könnte man eine CD-Sammlung im Internet publizieren wollen. Diese Sammlung wird von Zeit zu Zeit erweitert. Ohne Datenbank muss man die Html-Seiten direkt editieren. Je nachdem, welchen Editor man dazu verwendet, ist das eine mehr oder weniger mühsame Angelegenheit; immerhin muss man immer wieder auf dieselbe Formatierung achten. Das Schicksal solcher Seiten ist, dass sie einmal mit viel Euphorie erstellt werden, doch angesichts des Wartungsaufwandes dann nicht mehr ganz so freudig aktualisiert werden. Hat man dagegen die Daten in einer Access-Datenbank (irgendein Verwaltungsprogramm benötigt man ja ohnehin dazu), dann genügt es, eine aktualisierte Version davon auf den Server zu laden und alles andere besorgt ein Programm. Als Ausgangspunkt benutzen wir eine vereinfachte Version der Datenbank, die im Detail in PCNEWS 101 beschrieben ist, eine Datenbank für CDs. Die Datenbank CDs.mdb wird auf eine einzige Tabelle CDP (CD-Packung) reduziert (Das Feld CDP_KATEG_ID wurde weggelassen und der primäre Schlüssel wurde auf ID umbenannt.) Ausnahmsweise wird der Primärschlüssel nicht CPD_ID sondern nur ID genannt. Das erfolgt mit Rücksicht auf das am Ende dieses Beitrags vorgestellte Programm zum Editieren der gesamten Datenbank. Wir entwerfen eine solche Tabelle in Access und geben einige Datensätze ein. Die eigentliche Aufgabe ist es jetzt, diese Tabelle im Internet zu publizieren. Die Schritte dazu sind folgende:
Das Problem beim Online-Editieren ist aber, dass die Datei, die ein Editieren ermöglicht, von jedem benutzt werden kann, der diese Adresse kennt. Man muss daher dafür sorgen, dass diese Datei gegen Fremdzugriff geschützt ist. Das kann man auf zwei Arten erreichen: Man speichert die Zugriffsdatei zum Editieren in einem Ordner auf dem die "Virtual Folders" aktiviert sind. Man versieht die Datenbank mit einer Identifikationsmöglichkeit und speichert in einer eigenen Tabelle Usernamen/Passwort jener Benutzer, die auf die Datenbank zugreifen dürfen. Diese Zugriffseinschränkung kann sich auf das Lesen aber auch auf das Schreiben beziehen. Die CD-Datenbank ist passiv, d.h. der Besucher der Seite sieht die Liste, kann aber die Liste selbst nicht editieren. Etwas dynamischer sind Datenbanken, in die Benutzer auch schreiben dürfen, etwa in Gästebücher. Ein Gästebuch zeigt einerseits alle bisherigen Einträge anderseits gibt es auch eine Eingabemaske für neue Einträge. Es sind auch Mechanismen erforderlich, um sich gegen Spam zu schützen. Wir haben bereits drei Tabellen in der Datenbank und genau genommen muss man dieselben Programmsequenzen für jede der drei Tabellen wiederholen, wenn man diese Tabellen online editieren will. Dabei sieht man, dass sich die meisten Elemente wiederholen und man wünscht sich ein einheitliches Programm zur Bearbeitung aller Tabellen. Ein Programm, das alle Tabellen der Datenbank automatisch findet, ein Programm das jede Tabellenstruktur untersucht und in Abhängigkeit von der Anzahl der Felder, dem Feldtyp und dessen Länge die erforderlichen Controls generiert. Die Spalten sind sortierbar und bei mehr als 20 Datensätzen gibt es ein automatisches Paging in Portionen zu 20 Datensätzen. Damit dieses Programm nicht allzu aufwändig wird, wollen wir folgende Vereinfachungen treffen:
Die Darstellung dieses Programms in den PCNEWS erforder zu viel Platz, es ist daher nur in der Webversion enthalten. Hier wird nur die Funktion dargestellt. Das Programm erfordert als einzigen Parameter den Namen der Datenbank. Es findet alle Tabellen und generiert einen Index bestehend aus den Tabellennamen. Ein Klick auf den Tabellennamen öffnet die Datenbank in einem GridView-Control, das die Grundfunktionen Datensatz anfügen, Datensatz editieren und Datensatz löschen bietet. Das Programm weiß nichts über den Zusammenhang der Tabellen und behandelt die Tabellen unabhängig voneinander. Ebenso weiß das Programm nicht, wie groß ein Eingabefeld darzustellen ist. Dafür ist das Programm aber sehr universell. Ein Tabellen-Editor für Access-Datenbanken. |