|
Virtuelle Tabellen |
|
|
Letzte Änderung 09.11.2009 Virtuelle Tabellen
Virtuelle Tabellen sind Tabellen, die bei Programmstart im Arbeitsspeicher des Anwender-Rechners (Client) erzeugt werden. Meistens enthalten Virtuelle Tabellen anfangs noch keine Daten und sind völlig leer. Manchmal enthalten Virtuelle Tabellen jedoch bereits bestimmte Werte, die als Grundeinstellung dienen (Default-Werte).
» Abfrage-Ergebnisse in Virtueller Tabelle « Virtuelle Tabellen spielen in XDEV 2 eine ganz zentrale Rolle, denn das Ergebnis einer Datenbankabfrage (Resultset) wird immer in einer Virtuellen Tabelle gespeichert. Von dort aus lassen sich die Daten dann sehr leicht auf dem Bildschirm ausgeben, z.B. als Table, Tree oder in einem Formular. Dazu ist jeweils nur eine einzige Anweisung nötig. Dadurch ist dieses Konzept sehr viel einfacher und mit sehr viel weniger Programmieraufwand verbunden als die Verarbeitung von Resultsets direkt in Java.
» Speichern immer über Virtuelle Tabelle « Beim Speichern von Formularen, Tabellen, Trees, Listen etc., werden die Daten, die sich bekanntlich in einer Virtuellen Tabelle befinden, von der Virtuellen Tabelle in eine Datenbank-Tabelle übertragen. Um eine reibungslose Synchronisierung zu ermöglichen, sollte die Virtuelle Tabelle daher immer eine exaktes Abbild der entsprechenden Datenbank-Tabelle sein.
» Model-View-Control in XDEV 2 « In Java Swing setzen sich alle GUI-Komponenten aus 3 Einheiten zusammen: einem Daten-Model-Objekt (Model), einer Anzeige-Einheit (View) und einer Verarbeitungs-Einheit (Controller). Das Model enthält alle Daten für die Anzeige bereit. Die View ist für alles zuständig, was mit der Darstellung der Daten auf der Oberfläche zu tun hat. Der Controller ist für das Registrieren sowie für das Verarbeiten von Ereignissen zuständig, z.B. Mausklicks oder Tastatur-Eingaben. Das sog. 3-Schichten-Modell Model-View-Control (MVC) ist sehr flexibel, da die einzelnen Einheiten nicht fest miteinander verzahnt sind, sondern sich bei Bedarf sehr leicht austauschen lassen. Da XDEV 2 auf Swing aufsetzt, besitzen auch alle XDEV 2 GUI-Komponenten eine MVC Architektur sowie deren Eigenschaften.
» Virtuelle Tabellen sind das Model (MVC) « Alle GUI-Komponenten in XDEV 2 besitzen zunächst nur die Fähigkeit, Daten anzuzeigen (View) sowie auf Ereignisse zu reagieren und diese zu verarbeiten (Controller). Erst mit der Übergabe einer Virtuellen Tabelle (Model) wird eine GUI-Komponente vollständig und praxistauglich.
Daten, die von einer Table, Combobox, einem Tree oder in einem Formular angezeigt werden sollen, kommen immer aus einer Virtuellen Tabelle. Die Virtuelle Tabelle ist somit für sämtliche GUI-Komponenten das Daten-Model. Das Anzeigen der Daten erfolgt jeweils mit einer
» Daten-Haltung in Virtuellen Tabellen « Anders als bei Resultsets in Java lassen sich die Daten einer Virtuellen Tabelle beliebig lange im Speicher halten, jederzeit ergänzen, editieren, sortieren, beliebig oft auslesen und stehen grundsätzlich solange zur Verfügung, bis sie explizit gelöscht werden. Damit es dabei nicht zu einem Speicherüberlauf kommen kann, werden die Daten i.d.R. bereits bei der Datenbankabfrage gefiltert, wodurch sich die Ergebnismenge automatisch reduziert. Darüber hinaus stehen Ihnen in XDEV 2 GUI-Komponenten wie das DataGrid zur Verfügung, mit dem sich große Datenbestände automatisch ressourcenschonend durchsuchen lassen. Beispielsweise lädt das Datagrid immer nur so viele Datensätze in den Arbeitsspeicher wie es anzeigen kann. Alle weiteren Daten werden erst bei Bedarf nachgeladen. Das Löschen von Daten in einer Virtuellen Tabelle ist u.a. mit Hilfe der Methoden
» Minimaler Speicherbedarf « Anders als Variablen und andere Datenstrukturen werden Virtuelle Tabellen nicht mit Hilfe von Anweisungen im Code dynamisch erzeugt, sondern müssen manuell im Daten-Editor angelegt werden, den Sie über das Menü Daten aufrufen können. Beim Programmstart werden alle dort angelegten Virtuellen Tabellen automatisch im Arbeitsspeicher des Clients erzeugt. Die Virtuelle Tabelle ist eine völlig unkomplizierte und dynamische Datenstruktur, die Sie weder dimensionieren, noch typisieren müssen. D.h. beim Erzeugen einer Virtuellen Tabelle wird anders als bei Arrays, kein Hauptspeicher vorab reserviert. Das Konstrukt einer Virtuellen Tabelle an sich beansprucht mit nur wenigen Bytes so wenig Speicher, dass Sie sorglos beliebig viele Virtuelle Tabellen anlegen können.
Bei den Werten, die in einer Virtuellen Tabelle abgelegt werden sollen, kann es sich um beliebige Datentypen handeln, u.a. um Zahlen, Zeichenketten und sogar um Objekte, z.B. Listen oder Datums-Objekte.
» Nummerierung durch Index « Die Virtuelle Tabelle verwaltet alle Zeilen mit einem Index, der immer bei 0 beginnt und immer lückenlos geführt wird. Nach dem Löschen einer Zeile wird der Index aller nachfolgenden Zeilen automatisch um 1 reduziert, sodass der gesamte Index anschließend wieder lückenlos ist.
Der Index einer Virtuellen Tabelle ist nicht zu verwechseln mit der ID eines Datensatzes. Die Datensatz-ID wird immer von der Datenbank vergeben und beginnt i.d.R. bei 1. Nach dem Löschen eines Datensatzes in einer Datenbank bleiben alle anderen IDs immer unverändert. Die ID eines gelöschten Datensatzes wird zudem von der Datenbank nicht mehr verwendet.
» Zugriff mit Hilfe von Methoden « Mit Hilfe spezieller Methoden können Sie auf die Virtuelle Tabelle zugreifen, z.B. um die Virtuelle Tabelle mit einer dazugehörigen Datenbank-Tabelle zu synchronisieren. Eine Übersicht über die Methoden einer Virtuellen Tabelle finden Sie in der Bibliothek unter Virtuelle Tabellen, oder wenn Sie im Code-Editor den Namen der Virtuellen Tabelle gefolgt von einem Punkt, bzw. Backslash für NLS, eingeben. Zu den Methoden werden auch die Datenfeld-Konstanten der Virtuellen Tabelle angezeigt.
|